我在这里提供一个例子让大家都明白我真正需要的东西: 我有一张这样的桌子:
Name Null? Type
----------------------------------------- -------- --------------
Child_ID NUMBER(10)
Father_ID NUMBER(10)
值为:
Child_ID Father_ID
---------- ----------
2 1
4 1
3 2
5 3
现在我想要父id的分层信息1.为此,我写了一个查询,它为我提供了确切的输出:
**select * from child
start with father_id=1
connect by prior child_id = father_id;**
O / P:
Child_ID Father_ID
---------- ----------
2 1
3 2
5 3
4 1
现在我希望o / p应该是这样的:
ID
-----
1
2
3
4
5
我可以通过使用union键轻松获得它,但我不想使用它。 有没有其他方法可以得到这个? 提前谢谢。
答案 0 :(得分:0)
这有点乱,但你可以这样做:
select distinct case when l=1 then child_id else father_id end id
from
(select child_id, father_id
from child
start with father_id=1 connect by prior child_id=father_id) child
cross join (select level l from dual connect by level < 3)
order by id
;