oracle关系表中的层次结构级别

oracle关系表中的层次结构级别,oracle,Oracle,我有一个表employee,其中包含经理和员工的层次结构数据 样本数据 empId ManId 101 100 102 100 1010 101 1011 101 10101 1010 我需要找到水平,但它没有给我正确的输出。我需要像这样的输出 level Emp ID Man Id 1 101 100 1 102 100 2 1010 101 2 1011 101 3

我有一个表employee,其中包含经理和员工的层次结构数据

样本数据

empId ManId
  101   100
  102   100
 1010   101
 1011   101
10101  1010
我需要找到水平,但它没有给我正确的输出。我需要像这样的输出

level  Emp ID Man Id
1        101     100
1        102     100
2       1010     101
2       1011     101
3      10101    1010
无论输入是Emp ID还是Man ID,输出都应该是常量。我只在使用manager id作为100时获得输出,但当我将值传递为10101时,输出不起作用

select distinct
level,
manager_id, 
employee_id
from employees
START WITH manager_id = 100
connect by   manager_id= prior employee_id
order by level

START WITH子句用于指定层次结构的根行,该层次结构是具有101值的员工id

请使用下面的

select distinct
       level,
       manager_id, 
       employee_id
       from employees
       where level<=3
       START WITH employee_id = 101
       connect by   manager_id= prior employee_id
       order siblings by employee_id
Update1:-:-如果根行不特定,则可以删除START WITH

   select distinct
       level,
       manager_id, 
       employee_id
       from employees
       where level<=3
       connect by   manager_id= prior employee_id
       order siblings by employee_id
查看此链接以了解更多信息

连接方式条款中的切换管理器id和员工id如果我没有根id和底部id,即1010,我仍然可以获得所需的输出吗?如果你知道结果的级别,你可以对结果进行操作,如果是员工1010,你可以将其添加到不工作的级别。我使用下面的查询选择经理id、员工id、来自员工的级别,其中级别您得到的结果是什么?是否可以在不通过start with子句的情况下获得输出??这是因为我可能需要通过将输入传递为10101来获得级别,而这不是这里的管理器