0

我正在研究具有以下结构的产品数据库:

ID | ChildID
1    1
2    2
2    3
2    4
2    5
3    null
4    8
5    6      
6    null
8    null

当 ID = ChildID 时,它是“标题”行。当 ChildId = null 它是层次结构中的最后一个节点(显然)我想要得到的是完整的层次结构。我尝试了一些带有“WITH”子句的查询,但由于它的结构,我无法使其工作。

有什么建议吗?

当我查找项目“2”的层次结构时的预期输出

ID | ChildID
2    2
3    null
4    8
5    6      
6    null
8    null
4

1 回答 1

0

您似乎没有“标题”行和任何数据之间的链接。假设你错过了一行(1, 2),这是你想要的吗?

select rpad(' ', 2*(level-1)) || id as padded_id, childid
from t42
start with childid = id
connect by nocycle prior childid = id
order by id, childid;

PADDED_ID     CHILDID
---------- ----------
1                   1 
  1                 2 
    2               3 
    2               4 
    2               5 
      3               
      4             8 
      5             6 
        6             

 9 rows selected 

您可以在文档中阅读有关分层查询的信息

于 2013-06-28T09:23:01.220 回答