小编car*_*987的帖子

SQL Server - 从分层表中获取根节点

我需要获取分层表的根节点(具有 PARENT_ID = NULL):

ID | PARENT_ID 
60   NULL
21   60
11   NULL
23   11
24   21
25   23
14   24
13   25
Run Code Online (Sandbox Code Playgroud)

我想要这个结果:

ID | PARENT_ID | ROOT_ID |
-------------------------
1      NULL       NULL
2         1          1
3         1          1
4         2          1
5         4          1
6       NULL    NULL
7         6          6
8         7          6
Run Code Online (Sandbox Code Playgroud)

CTE是个好方法吗?我怎样才能创建它?

显然我可以有更多的一个根节点。我必须获取每个节点的根节点。

这就是我所做的:

;WITH RCTE AS
(
    SELECT  ID, PARENT_ID, ID as ROOT_ID
    FROM TABLE r1
        WHERE NOT EXISTS (SELECT * FROM TABLE r2 WHERE …
Run Code Online (Sandbox Code Playgroud)

sql sql-server recursion recursive-query common-table-expression

0
推荐指数
1
解决办法
2676
查看次数