重复根据上一行中的值的值选择行

时间:2012-03-27 09:33:13

标签: sql oracle plsql

我有一个典型的emp表,我想从中获取指定员工的分层组织结构图。

即。如果我在where子句中输入101作为EMPID,那么它应该显示:

ID  NAME   MGRID
101 SCOTT   104
104 TIGER   106
106 KING    ---

我想知道它是否可以用SQL解决,或者我必须使用PL / SQL? 感谢。

2 个答案:

答案 0 :(得分:2)

SELECT id, name, mgrid
FROM emp
START WITH id = 101
CONNECT BY PRIOR mgrid = id
ORDER BY id

答案 1 :(得分:1)

假设您正在使用oracle,我认为Hierarchical Queries正是您所需要的:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries003.htm