当前位置:首页>科技>正文

sql查出一棵树中的所有叶子节点,或者所有的双亲节点,该怎么处理

2023-05-31 19:35:42 互联网 未知 科技

 sql查出一棵树中的所有叶子节点,或者所有的双亲节点,该怎么处理

sql查出一棵树中的所有叶子节点,或者所有的双亲节点,该怎么处理

sql查出一棵树中的所有叶子节点,或者所有的双亲节点如题。
------解决方案--------------------------------------------------------
SELECT LPAD( , 2*level-1)||SYS_CONNECT_BY_PATH(last_name, / ) Path
FROM hr.employees
START WITH last_name = Kochhar
CONNECT BY PRIOR employee_id = manager_id
ORDER SIBLINGS BY last_name結果為Path----------------------------------------/Kochhar/Kochhar/Baer
/Kochhar/Greenberg
/Kochhar/Greenberg/Chen
/Kochhar/Greenberg/Faviet
/Kochhar/Greenberg/Popp
/Kochhar/Greenberg/Sciarra
/Kochhar/Greenberg/Urman
/Kochhar/Higgins
/Kochhar/Higgins/Gietz
/Kochhar/Mavris
/Kochhar/Whalen
已选择12行。
解释:START WITH:指定root
CONNECT BY:指定父子关系
PRIOR:指定谁具有父亲row的资格。此例中,表示如果row1.employee_id=row2.manager_id,则row1是row2的父亲row
level: 表示等级了。
SIBLINGS:表示在相同level中排序。
SYS_CONNECT_BY_PATH( , ):x是column,c是字符。返回x的path,用c作为分界符,从root到本节点。