语法: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 ;---------------------------------(叶子---->根)