ORACLE的层次搜索问题

今天研发的一个同事和我讨论这样一个问题:
   
    公司中有多个部门和部门内的小组,如果知道一个部门或小组的编号,是否可以直接列出该部门或小组的所有上级和所有下级。
    例如:部门信息表[DEPTAB]
    部门编号       部门名称        上级部门
    【字段ID】   【字段DEP】    【字段PID】
     1                公司             0
     2               运维中心         1
     3               XX中心           1
     ......
     10               技术部           2
     ......
     20              数据支持组      10
     ......

    
    针对这个问题,我只好使用了一个比较笨的办法来实现

select * from DEPTAB
     sTART WITH ID= 10
       CONNECT BY  ID = PRIOR PID 
union 
select * from DEPTAB     
     START WITH v1= 10
       CONNECT BY  PRIOR ID =  PID;

    

   希望能提出更好的方法 -:)

本文转自Be the miracle!博客51CTO博客,原文链接http://blog.51cto.com/miracle/60188如需转载请自行联系原作者


Larry.Yue

上一篇:面向对象分析与设计—四色原型模式(彩色建模、领域无关模型)(概念版)


下一篇:三层结构之联接查询的实现