Welcome 微信登录

首页 / 数据库 / MySQL / Oracle层次结构查询语句

Oracle 提供了一个有趣的功能 connect by 子句,它可以对具有家族树结构的分枝进行排序。它的用途有 机构或公司的各层结构,财务的科目代码等。 要使用查询遍历,需要在将数据在基表中按照层次结构进行存储。比如一个组织机构就是这样的典型例子: 实现语句: SELECT column FROM table_name START WITH column=value CONNECT BY PRIOR 父主键=子外键 例1:在ORACLE的EMP 表中,每一条记录都有一个唯一标识当前雇员的empno和标识这个雇员的经理的mgr列。如果mgr 为空,则该雇员是该机构的最顶级。www.linuxidc.com现在要列出每个雇员的层次结构(从顶到底): 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一样。Oracle建立全文索引的步骤Fedora下安装Oracle:“无法使用命令/usr/bin/xdpyinfo自动检查显示器颜色”相关资讯      oracle 
  • [INS-32052] Oracle基目录和Oracle  (07/22/2014 07:41:41)
  • Oracle 4个大对象(lobs)数据类型  (02/03/2013 12:33:05)
  • Oracle按时间段分组统计  (07/26/2012 10:36:48)
  • [Oracle] dbms_metadata.get_ddl的  (07/12/2013 07:37:30)
  • Liferay Portal 配置使用Oracle和  (07/31/2012 20:07:18)
  • Concurrent Request:Inactive   (07/20/2012 07:44:05)
本文评论 查看全部评论 (0)
表情: 姓名: 字数