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;

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

  

你可能感兴趣的:(oracle,数据库,connect,by,休闲)