我正在开发一个具有以下结构的产品数据库:
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
答案 0 :(得分: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