connect by

with sys_useras(

select1 userid,'top manager' username,null leaderid from dual unionall

select20,'manager1',1from dual unionall

select30,'manager2',1from dual unionall

select201,'jeff' ,20from dual unionall

select202,'linda',20from dual unionall

select301,'jessie',30from dual unionall

select302,'kate',30from dual unionall

select303,'steven',30from dual

)

select username

from sys_user

startwith username='top manager'

connectbyprior userid=leaderid

 

1              topmanager

2              manager1

3              jeff

4              linda

5              manager2

6              jessie

7              kate

8              steven

 

with sys_useras(

select1 userid,'top manager' username,null leaderid from dual unionall

select20,'manager1',1from dual unionall

select30,'manager2',1from dual unionall

select201,'jeff' ,20from dual unionall

select202,'linda',20from dual unionall

select301,'jessie',30from dual unionall

select302,'kate',30from dual unionall

select303,'steven',30from dual

)

selectSYS_CONNECT_BY_PATH(username, '/') "Path"   

from sys_user

startwith username='top manager'

connectbyprior userid=leaderid

 

1              /topmanager

2              /topmanager/manager1

3              /topmanager/manager1/jeff

4              /topmanager/manager1/linda

5              /topmanager/manager2

6              /topmanager/manager2/jessie

7              /topmanager/manager2/kate

8              /topmanager/manager2/steven

 

START WITH 代表你要开始遍历的的节点!

CONNECT BY PRIOR 是标示父子关系的对应!

 

通过这个发现,这个其实好像一颗中序遍历的树。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值