获得经理和oracle中的经理经理人数

时间:2015-09-14 18:00:56

标签: oracle

我在oracle中有下表

EMPNO   ENAME   MGR 
1       A       1 
2       B       1 
3       C       2 
4       D       3 
5       F       1 
6       G       3 
7       H       6

我需要传递一个EMPNO并且它应该给我manger id,如果经理有另一个经理,它应该在同一个领域给我id id。

例如,如果我传递empno = 7,则输出应为6,3,2,1。

2 个答案:

答案 0 :(得分:0)

您可以使用jsfiddle语法创建分层查询:

SELECT     mgr
FROM       emp
START WITH empno = 7
CONNECT BY PRIOR empno = mgr

答案 1 :(得分:0)

这是查询,我最后用于实际结果

选择 ENAME, CONNECT_BY_ISCYCLE循环, 水平, SYS_CONNECT_BY_PATH(ENAME,' /')路径 来自EMP_DEMO 开始使用empno =' 7' 由NOCYCLE连接先前MGR = EMPNO;

您必须始终采用最高级别记录。