Oracle数据库的分层查询(1)(2)
使用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审计语句简单使用(1)
- 下一篇:Oracle数据库Spfile学习总结






