相关疑难解决方法(0)

SQL Server CTE - 查找每个childID的顶级parentID?

我有一个包含层次结构数据的表 - 类似于:

childID  |  parentID
____________________
  1      |     5
  5      |     9
  9      |     20
  2      |     4
  3      |     7
  7      |     8
  8      |     8
 20      |     20
  4      |     4
  8      |     8
Run Code Online (Sandbox Code Playgroud)

期望的输出:

在此输入图像描述

我创建了一个递归CTE,它找到了我的顶部fatherID.

就像是:

;WITH cte AS (
                 SELECT a.childID
                       ,a.parentID
                       ,1 AS lvl
                 FROM   [Agent_Agents] a
                 WHERE   a.childID = 214 //<==== value to begin with !! - thats part the problem
                 UNION ALL
                 SELECT tmp.childID
                       ,tmp.parentID
                       ,cte.lvl+1
                 FROM   [Agent_Agents] tmp
                         INNER …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server common-table-expression sql-server-2008

16
推荐指数
2
解决办法
2万
查看次数