我的表格中包含child#
,parent#
,如下所示:
child# | parent#
------------------
10 | NULL
20 | NULL
2 | 1
1 | 10
50 | 10
6 | 5
5 | 2
没有数字排序,即1可以是10的父级,10可以是20的父级。
我想要一个ORACLE SQL查询,它首先列出所有父项,然后是它们的子项。
我想要一个像下面这样的临时表:
child# | parent#
----------------
10 | NULL
20 | NULL
1 | 10
2 | 1
50 | 10
5 | 2
我想遍历这个临时表并处理每一行,所以我需要确保在子行之前列出父表。
答案 0 :(得分:1)
select level,child,parent
from your_table
start with t2.parent is null
connect by prior t2.child = t2.parent
order by level
<强>输出强>:
LEVEL CHILD PARENT
1 10 (null)
1 20 (null)
2 1 10
2 50 10
3 2 1
4 5 2
5 6 5
链接到 fiddle