遞歸的實現比較簡單,這里就直接貼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
添加到臨時表,查詢遞歸結果
遞歸的效率還是很高的!