SQL Server:没有锚点的层次结构递归CTE

时间:2012-06-22 18:10:08

标签: sql sql-server hierarchy common-table-expression

我能够使用递归CTE生成层次结构,但我总是使用锚点...具有一些顶级指示符的顶级记录(parentID IS NULL)。我想建立一个不一定有定义锚的层次结构。我有一个多对多的引用表,其中包含parentID和childID。任何父母都可以是孩子,反之亦然(当然,避免循环参考)。我认为这将是一种自下而上的方法而不是自上而下的方法。想法?

1 个答案:

答案 0 :(得分:3)

如果没有至少一个锚成员和一个递归成员,则无法使用CTE构建递归查询。

虽然递归CTE用于生成层次结构,但在这种情况下的问题是表中的数据不表示层次结构,因为层次结构是有向非循环图的类型,因此它必须具有一个元素(等级)优于所有其他元素。