我正在寻找解决方案,如何选择使用sys_connect_by_path只使用完整的层次结构‘分支’。我在互联网上找到了这样的例子,但结果却缺乏我感兴趣的第二次查询。下面的例子。有人知道如何实现输出的第二种形式--跳过较短的层次结构吗?
SQL>
SQL> column full_path format a40
SQL>
SQL> select ename
2 , connect_by_root ename as Designer
3 , sys_connect_by_path(ename,' > ') as full_path
4 from emp
5 start with job = 'Designer'
6 connect by prior empno = mgr;
ENAME DESIGNER FULL_PATH
-------- -------- ----------------------------------------
Jane Jane > Jane
Smart Jane > Jane > Smart
Ana Jane > Jane > Smart > Ana
Fake Jane > Jane > Fake
Tom Jane > Jane > Fake > Tom
Black Black > Black
Jack Black > Black > Jack
Wil Black > Black > Wil
Mary Black > Black > Mary
Take Black > Black > Take
Jane Black > Black > Jane
Chris Chris > Chris
Mike Chris > Chris > Mike
Peter Peter > Peter
Jane Peter > Peter > Jane
Smart Peter > Peter > Jane > Smart
Ana Peter > Peter > Jane > Smart > Ana
Fake Peter > Peter > Jane > Fake
Tom Peter > Peter > Jane > Fake > Tom
ENAME DESIGNER FULL_PATH
-------- -------- ----------------------------------------
Black Peter > Peter > Black
Jack Peter > Peter > Black > Jack
Wil Peter > Peter > Black > Wil
Mary Peter > Peter > Black > Mary
Take Peter > Peter > Black > Take
Jane Peter > Peter > Black > Jane
Chris Peter > Peter > Chris
Mike Peter > Peter > Chris > Mike发布于 2017-10-27 12:35:20
使用 pseudocolumn只筛选到层次结构树叶子上的行:
select ename
, connect_by_root ename as Designer
, sys_connect_by_path(ename,' > ') as full_path
from emp
WHERE CONNECT_BY_ISLEAF = 1
start with job = 'Designer'
connect by prior empno = mgr;https://stackoverflow.com/questions/46975088
复制相似问题