oracle关系表中的层次结构级别
我有一个表employee,其中包含经理和员工的层次结构数据 样本数据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
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来获得级别,而这不是这里的管理器