作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有下表
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/
我是一名优秀的程序员,十分优秀!