Oracle数据库的start with ... connect by

本文介绍Oracle SQL中startwith和connectby的功能与使用方法,通过实例展示如何构建层级查询,包括设置起始节点、定义父子节点关系及层级递归查询等。

start with … connect by 用法讲解:

构建如下table:         

ID   NAME  PID
1    10    0
2    11    1
3    20    0
4    12    1
5    121   2        

code example1:        


select  TBL_TEST.*, level  from  TBL_TEST

start  with  pid= 1  --  可写到  connect by  后面   

connect  by  prior  pid =  id

ID   NAME PID LEVEL 
2    11    1    1
1    10    0    2
4    12    1    1
1    10    0    2 

code example2:   

select  TBL_TEST.*, level  from  TBL_TEST

start  with  id = 5  --  可写到  connect by  后面   

connect  by  prior  pid =  id  

ID   NAME PID LEVEL   
5     121    2    1
2     11     1    2
1     10     0    3  



说明:       

1、先从start with pid=1 句开始查询 得到 2   11   1   1 =====> level置1;       

2、根据pid = id,查询 id=1 句,得到 1   10   0   2 =====> level置2;       

3、根据pid = id,查询 id=0 句,未查询到后结束该树枝;       

 注:prior pid = id 句说明 pid是id的父节点,通过pid查询id  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值