暂时还没想到简单的写法,先试试这个SELECT * FROM (select T.* from T connect by prior Pid=id START WITH ID IN (SELECT ID FROM (select T.*,LEVEL L from T start with pid is null connect by prior id=pid) WHERE LEVEL=4)) start with pid is null connect by prior id=pid
1、先获取所有level=4的节点 2、获取这些节点及其路径上的所有节点 3、按照树形结构进行查询,显示最终结果 SELECT * FROM (select T.* from T connect by prior Pid=id START WITH ID IN (SELECT ID FROM (select ID,LEVEL L from T start with pid is null connect by prior id=pid) WHERE L=4)) start with pid is null connect by prior id=pid
(select T.*
from T
connect by prior Pid=id
START WITH ID IN
(SELECT ID FROM
(select T.*,LEVEL L from T start with pid is null connect by prior id=pid)
WHERE LEVEL=4))
start with pid is null connect by prior id=pid
2、获取这些节点及其路径上的所有节点
3、按照树形结构进行查询,显示最终结果
SELECT * FROM
(select T.*
from T
connect by prior Pid=id
START WITH ID IN
(SELECT ID FROM
(select ID,LEVEL L from T start with pid is null connect by prior id=pid)
WHERE L=4))
start with pid is null connect by prior id=pid