递归的实现比较简单,这里就直接贴SQL了。
--简单创建一个用户表 CREATE TABLE User( UserID INT PRIMARY KEY IDENTITY(1,1) , ParentUserID INT )
假设这张有几千条数据,开始递归它。
WITH cte AS ( SELECT a.UserID,0 AS lvl FROM [User] a WHERE a.ParentUserID=@UserID UNION ALL SELECT a.UserID,1+lvl FROM [User] a INNER JOIN cte c ON a.ParentUserID =c.UserID ) SELECT * INTO #Temp FROM cte
添加到临时表,查询递归结果
递归的效率还是很高的!