使用level
Level伪列显示了层次树中特定行的层次或级别,如果你理解了下面的语句,你会看到King的级别以及直接向他报告的人的级别:
这里where子句中使用level是为了限制输出结果到第2级。
Level还可以用于图形化输出结果:
修剪分支/子节点
业务需求可能只需要返回部分层次树,需要修剪掉分支,如果你不想这么做,可以使用where条件过滤掉分支,但需要处理子行。
SELECT empno,
ename,
job,
mgr,
hiredate
FROM emp
WHERE ename <> 'JONES'
START WITH mgr IS NULL
CONNECT BY PRIOR empno = mgr
|
这样可以限制JONES不显示在结果集中,但仍然还会检索到SCOTT和FORD。
为了限制CLARK及其子节点都不显示在查询结果中,你应该在CONNECT BY子句后跟上限制条件:
- Oracle数据库查询的五个技巧
- 提高ORACLE数据库的查询统计速度
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。