您的位置:首页 > 数据库 > Oracle

oracle层级查询(Hierarchical Queries)

2016-06-07 22:43 435 查看

oracle层级查询(Hierarchical Queries)

{ CONNECT BY [ NOCYCLE ] condition [ START WITH condition ]

| START WITH condition CONNECT BY [ NOCYCLE ] condition

}

oracle官网详解

伪列(Pseudocolumn)

oracle层级查询常用的伪列有:

level:层级

connect_by_isleaf:是否是叶子结点

connect_by_iscycle:是否是导致出现死循环的那个树枝

SYS_CONNECT_BY_PATH( , ):路径

CONNECT_BY_ROOT:根结点



样例(Example )

SELECT last_name "Employee", CONNECT_BY_ROOT last_name "Manager", LEVEL-1 "Pathlen", LTRIM(SYS_CONNECT_BY_PATH(last_name, '/'),'/') "Path"
FROM employees
WHERE LEVEL > 1 and department_id = 110
CONNECT BY PRIOR employee_id = manager_id
ORDER BY "Employee", "Manager", "Pathlen", "Path";

Employee        Manager            Pathlen Path
--------------- --------------- ---------- ------------------------------
Gietz           Higgins                  1 Higgins/Gietz
Gietz           King                     3 King/Kochhar/Higgins/Gietz
Gietz           Kochhar                  2 Kochhar/Higgins/Gietz
Higgins         King                     2 King/Kochhar/Higgins
Higgins         Kochhar                  1 Kochhar/Higgins
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle