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