根据节点遍历树——Oracle个人学习

来源:互联网 发布:大泽乡起义知乎 编辑:程序博客网 时间:2024/05/16 04:49

根据树的节点向上或者向下遍历树节点。【id:节点id】【fid:节点的父节点id】【name:节点名称】。

/*----------------------------------------------------------------------向上递归(注意fid和id位置)--------------------------------------------------------------------------------------*/

--向上遍历树,找到路径直到根节点,指定的是fid。
select distinct ti.id, ti.fid, ti.name 
from treeinfo ti 
start with ti.fid = 'A' 
connect by prior ti.fid = ti.id 
--向上遍历树,找到路径直到根节点,指定的是id。
select distinct ti.id, ti.fid, ti.name 
from treeinfo ti 
start with ti.id = 'B' 
connect by prior ti.fid = ti.id 

/*----------------------------------------------------------------------向下递归(注意id和fid位置)--------------------------------------------------------------------------------------*/
--向下遍历整棵树,可以指定id,来遍历指定节点的树 。
select distinct ti.id, ti.fid, ti.name 
from treeinfo ti 
start with ti.id = 'C' 
connect by prior ti.id = ti.fid 

--向下遍历整棵树,可以指定fid,来遍历指定fid节点的树,结果不包含fid 。
select distinct ti.id, ti.fid, ti.name 
from treeinfo ti 
start with ti.fid = 'C' 
connect by prior ti.id = ti.fid 

0 0