遍历查询

这里写图片描述
1从非根节点开始遍历
使用start with实现,下面查询从jones开始
select level,empno,lpad(’ ‘,6*level-1)||ename name
from emp
start with ename=’JONES’
connect by prior empno=mgr;
这里写图片描述

2从下向上遍历树
实现方法是交换父节点与子节点在connect by prior字句中顺序,
例如:
connect by prior mgr=empno;可以将子节点的mgr连接到父节点的empno中。

select level,empno,lpad(’ ‘,6*level-1)||ename name
from emp
start with ename=’SMITH’
connect by prior mgr=empno;

这里写图片描述

3从层次化查询中删除节点和分支
使用where 字句从查询数中删除某个特别的节点

没有除去JONES的图
这里写图片描述

下面删除jones子节点。
select level,empno,lpad(’ ‘,6*level-1)||ename name
from emp
where ename !=’JONES’
start with ename=’KING’
connect by prior empno=mgr;
这里写图片描述

posted on 2017-05-21 23:05  2637282556  阅读(180)  评论(0编辑  收藏  举报