Oracle中的递归查询
该表只有两个字段,PNODE,NODE,PNODE为NODE父结点,当该节点无子节点时,PNODE=NODE
要求给定父结点,查出所有子节点,子孙节点……
如:
PNODE NODE
1 2
2 3
2 4
3 3
4 4
要求给定PNODE=1,给出结果为:
2
3
4
如果是10G以上的可以用NOCYCLE 去掉循环的影响
….
start with PNODE = 1
connect by NOCYCLE prior NODE = PNODE
….
10G以下的可以试试:Where一定要写在connect by前面
where NODE <> PNODE
start with PNODE = 1
connect by prior NODE = PNODE
另外一种查询ID的所有父节点:
select * from dg_test
start with D_id=7
connect by D_id = prior D_pid
把Prior写到后面就可以了。
欢迎转载,请注明出处:亲亲宝宝