0

我们有资源列表及其经理(不是完整的层次结构)。我们现在需要检索资源列表,以便资源的经理行应始终出现在资源行之前。我已经尝试过分层查询,但是鉴于数据集,我不确定它是否正常工作。有什么指点或线索,请确认订单?

编辑:在数据集中添加了最后一行,查询似乎不再起作用。


sqlfiddle

select level, emp, mgr 
from emp
where level = 1
connect by prior emp = mgr -- and level = 1 

数据集

员工 | 经理
------------
A11 | A1
A12 | A1
B1 | 乙
C12 | C1
A1 | 一个
C1 | C
C21 | C2
一个 | C

预期的有序结果集

员工 | 经理
------------
一个 | C
A1 | 一个
A11 | A1
A12 | A1
B1 | 乙
C1 | C
C12 | C1
C21 | C2
4

1 回答 1

0
select level, emp, mgr
from emp
connect by mgr = prior emp
start with mgr in (select mgr from emp minus select emp from emp)
order by emp, mgr;
于 2018-02-24T01:07:25.797 回答