自嵌套SQL连接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自嵌套SQL连接相关的知识,希望对你有一定的参考价值。
我需要这个结果这个表。这是3列,我希望嵌套节点有3个结果。我真的希望每个节点都有自己和父类似的结果
ID/ Number/SelfRef
21092 100 NULL
21093 50 NULL
21094 30 21093
21095 20 21093
21096 -30 21093
21097 5 21095
21098 15 21095
21099 -5 21095
我需要这个结果
21097 5 21097
21097 5 21095
21097 5 21093
这是我的逻辑
答案
这对我有用
;WITH
cte1 AS
( -- Recursively build the relationship tree
SELECT SelfRef
, ID
, AscendentLevel = 1
FROM [Kharid].[IdentityGharardadKalaTedad]
UNION ALL
SELECT t.SelfRef
, cte1.ID
, AscendentLevel = cte1.AscendentLevel + 1
FROM cte1
INNER JOIN [Kharid].[IdentityGharardadKalaTedad] t ON t.ID = cte1.SelfRef
),
cte2 AS
( -- Now find the ultimate parent
SELECT SelfRef
, ID
, rn = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY AscendentLevel DESC)
FROM cte1
)
SELECT *
FROM cte2
Order by id
以上是关于自嵌套SQL连接的主要内容,如果未能解决你的问题,请参考以下文章