【发布时间】:2014-12-13 21:49:02
【问题描述】:
在下面的例子中
id parent_id
A A
B A
C B
select id, parent_id
from table
start with id = 'A'
connect by nocycle parent_id = prior id
我明白了
A A
B A
C B
在我的数据库中,我的表中有数百万行,层次结构又深又广,我对所有孩子都不感兴趣。我可以派生出我感兴趣的孩子。所以我想把查询放在它的头上,并提供带有孩子 ID 的 START WITH。然后我想递归地输出父级,直到我到达顶部。在我的情况下,顶部是 id 和 parent_id 相等的地方。这是我正在尝试的,但我无法让它显示顶级父级。
select id, parent_id
from table
START WITH id = 'C'
CONNECT BY nocycle id = PRIOR parent_id
这给了我
C B
B A
它没有输出A A。可以这样做吗?我希望做的不是在输出中将 parent_id 显示为单独的列,而只是显示与 id 相关的名称。然后,层次结构由顺序隐含。
【问题讨论】:
标签: sql oracle recursion common-table-expression