oracle SQL查询语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle SQL查询语句相关的知识,希望对你有一定的参考价值。
查询SMITH员工及其所有直接、间接下属员工的信息。
查询SCOTT员工及其直接、间接上级员工的信息。
以树状结构查询所有员工与领导之间的层次关系
FROM emp
START WITH ename='SMITH'
CONNECT BY PRIOR empno=mgr ;
SELECT ename
FROM emp
START WITH ename='SCOTT'
CONNECT BY PRIOR mgr=empno
ORDER BY LEVEL DESC ;
SELECT LPAD(' ',(LEVEL-1)*3)||ename
FROM emp
START WITH mgr IS NULL
CONNECT BY PRIOR empno=mgr ;
你问的是ORACLE中层次树状查询,START WITH 。。 CONNECT BY 用法。
START WITH 指明树的起点。至于是找上级还是下级(也就是你问的),关键就在于PRIOR的用
法。PRIOR的意思是前一个。
比如:START WITH ename='SMITH'
CONNECT BY PRIOR empno=mgr ;
的意思:ename='SMITH'表示树的起点,即第一行
CONNECT BY PRIOR empno=mgr 表示上一行员工的编号是当前行的管理者,即找SMITH的下属。
START WITH ename='SCOTT'树的起点,即第一行
CONNECT BY PRIOR mgr=empno 表示上一行员工的管理员编号是当前员工的编号,即找SCOTT的上级及间接上级。 参考技术A select employee_id,last_name,manager_id from employees start with last_name='Smith' connect by prior employee_id=manager_id;
select employee_id,last_name,manager_id from employees start with last_name='SCOTT' connect by prior manager_id=employee_id;
select employee_id,last_name,manager_id from employees connect by prior
employee_id=manager_id;
以上是关于oracle SQL查询语句的主要内容,如果未能解决你的问题,请参考以下文章