Oracle中進行層級查詢的方式——start with...connect by


  數據庫查詢有時候會根據上下級的關系進行查找,比如組織架構中有上下級關系,查找某人最頂級的上級,或者所有的上級,或者所有的下屬,此時就可以用start with...connect by語句進行處理

  比如,在hrmresource中每個人id有對應的上級managerid,最上層的人員managerid為0,那么就可以進行如下查找:

--查找人員id為1018的最上級
select id from hrmresource where managerid = 0 start with id = 1018 connect by prior managerid = id

--查找人員id為1018的所有上級
select id from hrmresource start with id = 1018 connect by prior managerid = id

--查找人員id為1018的所有下級
select id from hrmresource start with id = 1018 connect by prior id = managerid

  注意:1、可以出現where條件

     2、prior的位置,在哪個字段的前面,就是順着哪個字段的方向進行查找

       3、start with 后面的條件是可以用in條件的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM