以hr用户的employees表为例,要实现如下查询结果:
红色部分的结果就是分层查询。
第4条记录为例,他表示Bloom的经理是Cambrault,Cambrault的经理是King。
这在人事系统里面,是绝对要使用的查询方法。
怎么实现?其实我也知道是分层查询,也知道要有level和connect by。
但是tmd这个语句也有些复杂,还tm不好理解,所以没有写出来:
sql如下:
SELECT last_name,
CONNECT_BY_ISLEAF "IsLeaf",
LEVEL,
SYS_CONNECT_BY_PATH(last_name, '/') "Path"
FROM employees
START WITH employee_id = 100
CONNECT BY PRIOR employee_id = manager_id
ORDER BY "Path";