T-SQL 语句——CTE 递归获取当前用户及其所有下级用户

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuxinwudai/article/details/83037487
CREATE TABLE #t(
	Id INT NOT NULL PRIMARY KEY IDENTITY,
	Name NVARCHAR(20) NOT NULL,
	ParentId INT NULL DEFAULT(NULL)
)
INSERT INTO #t VALUES('张三',NULL),('李四',1),('王五',2),('赵六',1),('田七',3)
SELECT * FROM #t
GO
WITH cte(Id,Name,ParentId,Level) AS(
	SELECT Id,Name,ParentId,0 Level FROM #t WHERE Id = @parentId 
	UNION ALL
	SELECT #t.*,cte.Level+1 FROM #t  JOIN cte ON cte.Id = #t.ParentId
)
SELECT * FROM cte
GO
DROP TABLE #t

猜你喜欢

转载自blog.csdn.net/wuxinwudai/article/details/83037487