冰箱厂家
免费服务热线

Free service

hotline

010-00000000
冰箱厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

技术文档ORACLE层次结构查询语句

发布时间:2020-07-21 18:33:37 阅读: 来源:冰箱厂家

摘要:ORACLE 提供了一个有趣的功能 connect by 子句,它可以对具有家族树结构的分枝进行排序。它的用途有 机构或公司的各层结构,财务的科目代码等。

关键词:ORACLE

ORACLE 提供了一个有趣的功能 connect by 子句,它可以对具有家族树结构的分枝进行排序。它的用途有 机构或公司的各层结构,财务的科目代码等。

要使用查询遍历,需要在将数据在基表中按照层次结构进行存储。比如一个组织机构就是这样的典型例子:

实现语句:

SELECT column

FROM table_name

START WITH column=value

CONNECT BY PRIOR 父主键=子外键

例1:在ORACLE的EMP 表中,每一条记录都有一个唯一标识当前雇员的empno和标识这个雇员的经理的mgr列。如果mgr 为空,则该雇员是该机构的最顶级。现在要列出每个雇员的层次结构(从顶到底):

select lpad(' ',4*(level-1))||ename name ,empno,mgr from emp

start with mgr is null

connect by prior empno=mgr;

NAME EMPNO MGR

--------------------     --------- ---------

KING 7839

JONES 7566 7839

SCOTT 7788 7566

ADAMS 7876 7788

FORD 7902 7566

SMITH 7369 7902

BLAKE 7698 7839

ALLEN 7499 7698

WARD 7521 7698

MARTIN 7654 7698

TURNER 7844 7698

JAMES 7900 7698

CLARK 7782 7839

MILLER 7934 7782

14 rows selected.

SQL>

从查询结果中可以看出,由于JONES、BLAKE、CLARK的上司是KING,所以JONES等MGR(经理编号)=KING的empno号,即KING的直接下级是JONES、BLAKE、CLARK,因为他们的MGR与KING的EMPNO一样。

责编:lyre

青岛碧莲盛植发

碧莲盛

碧莲盛植发

碧莲盛 兰州

相关阅读