Oracle 向上递归、向下递归

---- 向上递归
select
distinct orgguid,dtb_orgguid,orgname from dtba_organization a start with orgguid = '2117bc0897e543168fd9702216165c77' connect by prior dtb_orgguid = orgguid
orgguid 最小级别  



---- 向下递归
select distinct orgguid,dtb_orgguid,orgname from dtba_organization a start with dtb_orgguid = '5ca832cb82ed487d9b946890692529fe'
connect by prior orgguid
= dtb_orgguid

dtb_orgguid  最大级别





 

--查询全部资源信息 
select * from urm_class_info 
--向上遍历树,找到路径直到根节点,指定的是parentid 
select distinct classid,parentid,name 
from urm_class_info 
start with parentid = 'cmdb0000000000000017' 
connect by prior parentid = classid 
--向上遍历树,找到路径直到根节点,指定的是classid,和下面的主要区别就是parentid和classid的位置 
select classid,parentid,name 
from urm_class_info 
start with classid = 'cmdb0000000000000401' 
connect by prior parentid = classid 
--向下遍历整棵树,可以指定classid,来遍历指定节点的树 
select classid,parentid,name 
from urm_class_info 
start with classid = 'cmdb0000000000000017' 
connect by prior classid = parentid 
--向下遍历整棵树,可以指定parentid,来遍历指定parentid节点的树,不包含parentid 
select classid,parentid,name 
from urm_class_info 
start with parentid = 'cmdb0000000000000017' 
connect by prior classid = parentid 

 

posted @ 2016-10-12 11:02  幽冥狂_七  阅读(12527)  评论(0编辑  收藏  举报