递归CTE SQL获取所有级别
我必须用递归CTE创建一个sql查询,我不知道如何继续 我的表有许多条目,它们都有一个Id和一个parentId 我想得到一个这样的结构:递归CTE SQL获取所有级别,sql,recursion,common-table-expression,Sql,Recursion,Common Table Expression,我必须用递归CTE创建一个sql查询,我不知道如何继续 我的表有许多条目,它们都有一个Id和一个parentId 我想得到一个这样的结构: WITH Query AS ( SELECT P.Name, P.Id, P.ParentId FROM Table P UNION ALL SELECT P1.Name, P1.Id, P1.ParentId FROM Table P1 INNER JOIN Query M ON M.ParentId = P1.Id ) SELECT * FRO
WITH Query AS
(
SELECT P.Name, P.Id, P.ParentId
FROM Table P
UNION ALL
SELECT P1.Name, P1.Id, P1.ParentId
FROM Table P1
INNER JOIN Query M ON M.ParentId = P1.Id
)
SELECT * FROM Query
- 母公司
- 孩子
- 孩子
- 母公司
- 孩子
WITH Query AS
(
SELECT P.Name, P.Id, P.ParentId
FROM Table P
UNION ALL
SELECT P1.Name, P1.Id, P1.ParentId
FROM Table P1
INNER JOIN Query M ON M.ParentId = P1.Id
)
SELECT * FROM Query
我用CTE做了不同的尝试,但没有达到我的目标。
我在这个问题上花了很多时间,不知道如何处理。
我希望有人能帮助我。提前谢谢
我只希望每个条目的顶部都有ParentId,下面有所有的子项。多个条目都可以
;WITH Query AS
(
SELECT P.Name, P.Id, P.ParentId
FROM Table P
where P.ParentId = 0 -- assume root level records have ParentId = 0
UNION ALL
SELECT C.Name, C.Id, C.ParentId
FROM Table C
INNER JOIN Query P ON P.Id = C.ParentId
)
SELECT * FROM Query
option ( MaxRecursion 0 );