龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle数据库的分层查询(1)(2)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
使用level Level伪列显示了层次树中特定行的层次或级别,如果你理解了下面的语句,你会看到King的级别以及直接向他报告的人的级别: 498)this.width=498;' o

 

使用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子句后跟上限制条件:

 

 

 

 

  1. Oracle数据库查询的五个技巧
  2. 提高ORACLE数据库的查询统计速度
精彩图集

赞助商链接