Oracle数据库的分层查询(二)

日期: 2008-10-30 翻译:黄永兵 来源:TechTarget中国 英文

使用level

Level伪列显示了层次树中特定行的层次或级别,如果你理解了下面的语句,你会看到King的级别以及直接向他报告的人的级别:

Oracle数据库的分层查询(图五)

这里where子句中使用level是为了限制输出结果到第2级。

Level还可以用于图形化输出结果:

Oracle数据库的分层查询(图六)

修剪分支/子节点

业务需求可能只需要返回部分层次树,需要修剪掉分支,如果你不想这么做,可以使用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数据库的分层查询(图七)

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐