考虑以下表如何在自循环表中导航?
create table EMPLOYEE
(
empno NUMBER not null,
ename VARCHAR2(100),
salary NUMBER,
hiredate DATE,
manager NUMBER
);
alter table EMPLOYEE add constraint PK_EMP primary key (EMPNO);
alter table EMPLOYEE
add constraint FK_MGR foreign key (MANAGER)
references EMPLOYEE (EMPNO);
其是自循环表即每个雇员拥有管理器,除了根。
我想运行在此表下面的查询:
找到比他们的管理者更多的薪金所有的员工?
附:
只有一个根在结构
考虑下面的查询
SELECT LPAD(emp.ename, (LEVEL-1)*5 + LENGTH(emp.ename), ' ') AS "Hierarchy"
FROM employee emp
START WITH emp.manager IS NULL
CONNECT BY manager = PRIOR empno;
结果会是这样的:
Alice
Alex
Abbey
Sarah
Jack
Bill
Jacob
Valencia
Bob
Babak
...
我做下面的查询
SELECT LPAD(emp.ename, (LEVEL-1)*5 + LENGTH(emp.ename), ' ') AS "Hierarchy"
FROM employee emp
START WITH empno IN (SELECT empno FROM employee)
CONNECT BY PRIOR manager = empno;
它为员工表中的每个员工从下到上创建一个子树,但我不知道如何浏览以获得期望的结果!
首先让我们知道你已经尝试过什么? –
经理可以在他上面有经理吗?之后的下一个,等等?在这种情况下,你希望查询返回什么? (就像Deepak说的,告诉我们你到目前为止) – sstan
不,表中只有一个根 –