【发布时间】:2020-01-06 12:27:10
【问题描述】:
对于堆栈溢出的第一个问题,我有以下问题,我有一个如下所示的层次结构表:
Table TEST
- [wbe_node_type] [varchar](50) NOT NULL, /* leaf or expanded */
- [wbe_node] [varchar](50) NOT NULL,
- [wbe_node_mask] [varchar](50) NOT NULL,
- [wbe_description] [varchar](50) NOT NULL,
- [wbe_parent] [varchar](50) NOT NULL,
- [wbe_node_niveau] [int] NOT NULL, /* level of the record in the hierarchy */
数据如下:
wbe_node_type, wbe_node, wbe_node_mask, wbe_omschrijving, wbe_parent, wbe_node_niveau
expanded, AFCARN0, A-FCARN0, Project 1, [NULL]. 0
leaf, AFCARN04010, A-FCARN0.40.10, Description 2, AFCARN040, 2
expanded, AFCARN040, A-FCARN0.40, Realisatie, AFCARN0, 1
wbe_node_type 'leaf' 的行是层次结构中的最低层,最大深度为 8 层。我想要的是从底层(“叶”节点)到顶层的一行中扁平化层次结构。
我的想法是开始查找 wbe_node_type = 'leaf' 的所有记录并找到它上面的所有级别。使用临时表很容易做到这一点。但是,我用来查询这些数据的工具不适用于临时表。所以我想用 CTE 试试。
当我在网上寻找示例时,这些示例总是从顶部开始,然后逐渐向下。是否可以从最低级别开始从底部填充 CTE?
【问题讨论】:
-
我不太确定你的问题 - 你不能写一些带有连接的查询来使你的层次结构扁平化吗?你目前有什么 CTE - 它有什么问题?
-
嗨,理查德,感谢您的评论。我已尝试改进问题描述。
-
wbe_parent 字段是对 wbe_node 字段的引用吗?
-
嗨,罗斯,是的。
-
父记录可以有多个孩子吗?
标签: sql sql-server common-table-expression hierarchy