CREATE TABLE TB001
(
 CategoryId INT PRIMARY KEY,
 ParentCategoryId INT,
 CategoryName NVARCHAR(200)
)
GO

WITH T
AS
(
 SELECT T1.CategoryId,
 T1.CategoryName,
 T1.ParentCategoryId, 
 0 AS CategoryLevel
 FROM TB001 AS T1
 WHERE T1.ParentCategoryId IS NULL
 UNION ALL
 SELECT T1.CategoryId,
 T1.CategoryName,
 T1.ParentCategoryId,
 T.CategoryLevel+1 AS CategoryLevel
 FROM TB001 AS T1
 INNER JOIN T  ON T1.ParentCategoryId=T.CategoryId
)
SELECT *
FROM T
OPTION(MAXRECURSION 2)

 

--Note:注意控制最大递归数

相关文章:

  • 2022-12-23
  • 2021-10-26
  • 2021-07-22
  • 2021-05-31
  • 2022-12-23
  • 2022-12-23
  • 2021-06-25
猜你喜欢
  • 2022-12-23
  • 2021-07-18
  • 2021-09-02
  • 2021-08-05
  • 2021-08-01
相关资源
相似解决方案