树状查询

 

20844861_200905111616131.gif

select   empno,ename,mgr,level from emp  start with  mgr=7566  connect  by   prior   mgr=empno ;

     EMPNO ENAME             MGR      LEVEL
---------- ---------- ---------- ----------
      7788 SCOTT            7566          1
      7566 JONES            7839          2
      7839 KING                           3
      7902 FORD             7566          1
      7566 JONES            7839          2
      7839 KING                           3

6 rows selected.

从mgr=7566的记录开始,向根节点遍历,如果有多条记录的mgr=7566,那么每条记录分别遍历一直到根。start with相当于where条件可以由and或者or或者not连接多个条件表达式,mgr可以是任意column。注意一定要加prior关键字。level是伪列表示从mgr=7566的记录开始(第一层)向上遍历的层次数。

select   empno,ename,mgr,level from emp  start with  mgr=7566  connect  by   prior   empno=mgr;

     EMPNO ENAME             MGR      LEVEL
---------- ---------- ---------- ----------
      7788 SCOTT            7566          1
      7876 ADAMS            7788          2
      7902 FORD             7566          1
      7369 SMITH            7902          2

从mgr=7566的记录开始,向叶子节点遍历,如果有多条记录的mgr=7566,那么每条记录分别遍历一直到叶子节点。start with相当于where条件可以由and或者or或者not连接多个条件表达式,mgr可以是任意column。注意一定要加prior关键字。level是伪列表示从mgr=7566的记录开始(第一层)向下遍历的层次数。


select sys_connect_by_path(empno,'/') from emp  start with  empno=7566  connect  by   prior   empno=mgr;

SYS_CONNECT_BY_PATH(EMPNO,'/')
------------------------------------------------------------------------------------------------------------------------
/7566
/7566/7788
/7566/7788/7876
/7566/7902
/7566/7902/7369         

sys_connect_by_path是遍历到当前节点所经历的节点记录,"/"是分隔号,注意不要用","否则会报错。

fj.png树状查询.GIF

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20844861/viewspace-594623/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/20844861/viewspace-594623/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值