數據庫查詢有時候會根據上下級的關系進行查找,比如組織架構中有上下級關系,查找某人最頂級的上級,或者所有的上級,或者所有的下屬,此時就可以用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條件的