Oracle递归查询

oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询

表结构为 tab    (id ,pid 父节点,name 名称)

 

数据如下:

Id

pid

Name

1

0

aa

2

1

bb

3

1

cc

4

2

dd

5

2

ee

6

2

ff

7

3

gg

8

3

hh

9

3

mm

 

 

oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是:

 

select ... from tablename start with cond1 
connect by cond2 
where cond3;  

 

通过子节点向根节点追朔

select * from tab start with id=3 connect by prior pid=id;

 

通过根节点遍历子节点:

select * from persons.dept start with pid=0 connect by prior id=pid;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值