层次化查询

层次化查询

--从上往下遍历

select empno,mgr,ename from emp start with empno=7839 connect by prior empno = mgr

--使用伪列,显示节点在树中的层次

select level,empno,mgr,ename from emp start with empno=7839 connect by prior empno = mgr order by level

--获取树的层次数

select count(distinct level) from emp start with empno=7839 connect by prior empno = mgr

--格式化层次化查询

select level,lpad(' ',2 * level-1) || ename as emplyee from emp start with empno=7839 connect by prior empno = mgr

--从非根节点开始遍历

select level,lpad(' ',2 * level-1) || ename as emplyee from emp start with ename='JONES' connect by prior empno = mgr

--start with子句使用子查询

select level,lpad(' ',2 * level-1) || ename as emplyee from emp start with empno=(select empno from emp where ename='BLAKE') connect by prior empno =   mgr

--从下往上遍历

select level,lpad(' ',2 * level-1) || ename as emplyee from emp start with ename='SMITH' connect by prior mgr = empno

--从层次查询中移除特定的节点(移除ename=BLAKE的节点)

select level,lpad(' ',2 * level-1) || ename as emplyee from emp where ename != 'BLAKE' start with empno=7839 connect by prior empno =   mgr

--从层次查询中移除特定的分支(移除ename=BLAKE的分支)

select level,lpad(' ',2 * level-1) || ename as emplyee from emp start with empno=7839 connect by prior empno = mgr and ename != 'BLAKE'

--在层次查询中加入其他的查询条件

select level,lpad(' ',2 * level-1) || ename as emplyee,sal from emp where sal >=2000 start with empno=7839 connect by prior empno =   mgr

 

转载于:https://www.cnblogs.com/fosilzhou/articles/2649572.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值