gpt4 book ai didi

sql - 在没有游标的 SQL 中展平 SQL 分层数据结构

转载 作者:行者123 更新时间:2023-12-02 07:05:19 26 4
gpt4 key购买 nike

假设我有下表

SectionID ParentIDSection DatumID
1 NULL 1
2 1 2
3 1 3
4 2 4

现在,假设我想选择 SectionID = 1 下的所有 DatumID,即使它是其后代 child 的一部分,这样我就可以得到

SectionID DatumID
1 1
1 2
1 3
1 4

是否可以在不使用游标递归地显式迭代第一个表的情况下做到这一点?

最佳答案

这让我困惑了一分钟,因为它与我对递归的看法背道而驰,但我想出了这个非常简单的解决方案:

;WITH Rollups AS (
SELECT SectionId, ParentIdSection, DatumId
FROM SectionDataTable
UNION ALL
SELECT parent.SectionId, parent.ParentIdSection, child.DatumId
FROM SectionDataTable parent
INNER JOIN Rollups child ON child.ParentIdSection = parent.SectionId
)
SELECT *
FROM Rollups
WHERE SectionID = 1

(替换成你想要的section id)

关于sql - 在没有游标的 SQL 中展平 SQL 分层数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com