oracle sql 树操作

语法:select…start with…connect by…prior

主要有两点

1)prior放在子节点端,则表示扫描树是以start with指定的节点作为根节点从上往下扫描。可能对应一个或多个分支。

start with可以省略,如果省略,表示对所有节点都当成根节点分别进行遍历

select DEPTID,DEPTNAME,DEPT_PID,DEPT_PNAME ,LEADER,REMARK,DEPTDESC,SORTSNO,STATUS,LEVELID from T_SYS_DEPT1 
START WITH DEPTID=#{treeRoot} CONNECT BY PRIOR DEPTID = DEPT_PID;------------------------------------(根---->叶子)

2)prior放在父节点端,则表示扫描树是以start with指定的节点作为最低层子节点,从下往上扫描。顺序是子节点往父节点扫描,直到根节点为止,这种情况只能得到一个分支。

start with可以省略,如果省略,表示对所有节点都当成最低层子节点分别往根节点方向遍历

select DEPTID,LEVELID from T_SYS_DEPT1 
START WITH DEPTID=#{id} CONNECT BY PRIOR DEPT_PID = DEPTID ;---------------------------------(叶子---->根)

原文地址:https://www.cnblogs.com/GtShare/p/7516325.html