1.查找员工 FORD的上级
Note:在查找时,应当注意树形是倒过来的。(自下而上),故此父亲节点是MGR ,而儿子节点是EMPNO
–PRIOR MGR=EMPNO也是可以的。
以下两种方式均可以实现查找FORD的上级。
SQL>
SQL> show con_name;
CON_NAME
------------------------------
PDB1
SQL> show user;
USER is "SCOTT"
SQL>
SQL> SELECT EMPNO, ENAME, MGR
2 FROM SCOTT.EMP
3 CONNECT BY EMPNO=PRIOR MGR
4 START WITH ENAME = 'FORD';
EMPNO ENAME MGR
---------- ------------------------------ ----------
7902 FORD 7566
7566 JONES 7839
SQL>
SQL> ------------------------------------------
SQL> SELECT EMPNO, ENAME, MGR
2 FROM SCOTT.EMP
3 CONNECT BY PRIOR MGR = EMPNO
4 START WITH ENAME = 'FORD';
EMPNO ENAME MGR
---------- ------------------------------ ----------
7902 FORD 7566
7566 JONES 7839
SQL>
2.查找 FORD的下级
Note:在查找时,因树形是由上而下进行的,树为正的。父亲节点是EMPNO,儿子节点是MGR
同样,MGR=PRIOR EMPNO也可以
以下两种方式均可实现查找FORD的下级,
SQL>
SQL> SELECT EMPNO,ENAME,MGR
2 FROM SCOTT.EMP
3 CONNECT BY PRIOR EMPNO = MGR
4 START WITH ENAME='FORD';
EMPNO ENAME MGR
---------- ------------------------------ ----------
7902 FORD 7566
7369 SMITH 7902
SQL>
SQL> ------------------------------------
SQL> SELECT EMPNO,ENAME,MGR
2 FROM SCOTT.EMP
3 CONNECT BY MGR=PRIOR EMPNO
4 START WITH ENAME = 'FORD';
EMPNO ENAME MGR
---------- ------------------------------ ----------
7902 FORD 7566
7369 SMITH 7902
SQL> show user;
USER is "SCOTT"
SQL> show con_name;
CON_NAME
------------------------------
PDB1
SQL>
PRIOR manager_id 经理优先,故此找这个人的上级
PRIOR employee_id——雇员优先,故此找这个人的下级
注:prior都放在父节点的一端,注意树是向上还是向下的。
WHERE条件是限制结果集出来的条数(仅仅限制该结果集,该结果集下的(或上的)分支不影响),CONNECT BY 后的条件是限制分支的条数(即整条分支都受到影响)。