【发布时间】:2013-05-10 15:45:08
【问题描述】:
大家好!我有一个图表。首先,我知道如何构建简单递归选择。我在 msdn 上阅读了一些信息。
在此图像中,您可以看到(例如)图的顶部节点(编号为 0)影响节点编号 1(等 (2->4)、(3->4)、(4->5)、 (5->6), (1->5))
TASK:对于每个节点显示它影响的节点。例如, 数字 1 影响 5 和 6。
结果 SQL 必须返回如下内容:
who_acts| on_whom_influence
0 | 1
0 | 5
0 | 6
1 | 5
1 | 6
2 | 4
2 | 5
2 | 6
3 | 4
3 | 5
3 | 6
4 | 5
4 | 6
5 | 6
我可以使用 CTE 的anchor member 获得的起始数据是:
who_acts| on_whom_influence
2 | 4
3 | 4
4 | 5
5 | 6
1 | 5
0 | 1
我可以使用 SQL 语法和递归选择进行此选择吗?我该怎么做?
【问题讨论】:
-
我不明白,你想要的最终结果是什么?您能否从示例数据中显示您想要的结果,这可能会更清楚。
-
你应该包括你的表定义和当前的锚查询。 @Joachim 示例结果是第一个代码块。它是节点 (who_acts) 及其任意深度的所有子节点 (on_whom_influence) 的列表。
-
@JoachimIsaksson ,@EsotericScreenName 结果是 "as the result SQL must return something like this" 之后的第一个块。这就是结果。
-
@JoachimIsaksson 不,那是想要的结果。基础数据仅通过图像出现在问题中。
-
@EsotericScreenName 好的,包含的图片很有意义:)
标签: sql sql-server select common-table-expression recursive-query