oracle学习之:CONNECT BY层次化查询
来源:互联网 发布:文玩淘宝店 编辑:程序博客网 时间:2024/05/18 07:02
层次化查询,顾名思义就是把查询结果有层次的呈现出来。层次化查询结果类似于树状结构,
最顶端的是“根节点”,
下面是“父节点”,
没有子节点的是“叶节点”。
为了让一个或多个表具有层次关系,必须使用相关的字段将表关联起来。比如SCOTT用户下的SCOTT.EMP表中的EMPNO和MGR列。
基本语法为:
[START WITH conditiona1] CONNECT BY condition2
START WITH conditiona1:用来指定根节点,condition1中可以加子查询。
CONNECT BY condition2:condition2中必须包含PRIOR关键字,用来指定列是来自父行。PRIOR可以位于比较操作符的任何一方。condition不能包含子查询。
如:
打开SQL窗口:
SELECT T.EMPNO, T.MGR, T.ENAME, T.HIREDATE
FROM SCOTT.EMP T
START WITH T.MGR IS NULL
CONNECT BY PRIOR T.EMPNO = T.MGR;
EMPNO MGR ENAME HIREDATE
----------------------------------------------------------------------
1 7839 KING 1981/11/17
2 7566 7839 JONES 1981/4/2
3 7788 7566 SCOTT 1987/4/19
4 7876 7788 ADAMS 1987/5/23
5 7902 7566 FORD 1981/12/3
6 7369 7902 SMITH 1980/12/17
7 7698 7839 BLAKE 1981/5/1
8 7499 7698 ALLEN 1981/2/20
9 7521 7698 WARD 1981/2/22
10 7654 7698 MARTIN 1981/9/28
11 7844 7698 TURNER 1981/9/8
12 7900 7698 JAMES 1981/12/3
13 7782 7839 CLARK 1981/6/9
14 7934 7782 MILLER 1982/1/23
为了知道当前查询树状结构所处的层次,可以使用level伪列。加入level伪列后显示如下:
SELECT LEVEL,
LPAD(' ', 2 * (LEVEL - 1)) || T.ENAME "EmpName",
T.HIREDATE,
T.SAL
FROM SCOTT.EMP T
START WITH T.MGR IS NULL
CONNECT BY T.MGR = PRIOR T.EMPNO;
1 1 KING 1981/11/17 5000.00
2 2 JONES 1981/4/2 2975.00
3 3 SCOTT 1987/4/19 3000.00
4 4 ADAMS 1987/5/23 1100.00
5 3 FORD 1981/12/3 3000.00
6 4 SMITH 1980/12/17 800.00
7 2 BLAKE 1981/5/1 2850.00
8 3 ALLEN 1981/2/20 1600.00
9 3 WARD 1981/2/22 1250.00
10 3 MARTIN 1981/9/28 1250.00
11 3 TURNER 1981/9/8 1500.00
12 3 JAMES 1981/12/3 950.00
13 2 CLARK 1981/6/9 2450.00
14 3 MILLER 1982/1/23 1300.00
- oracle学习之:CONNECT BY层次化查询
- ORACLE层次查询学习 level connect by
- oracle connect by 层次查询
- oracle connect by层次查询
- 层次化查询start with...connect by prior... -Oracle
- Oracle 层次查询(Connect By)
- Oracle 层次查询(Connect By)
- oracle层次查询connect by (读书笔记)
- SQL:Oracle层次查询总结 connect by
- 数据库学习笔记---SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)
- Oracle层次查询及应用(start with connect by)
- Oracle层次查询及应用(start with connect by)
- SQL:oracle 层次查询 start with connect by
- SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)
- SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)
- 层次化查询(START BY ... CONNECT BY PRIOR)
- SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)
- SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR)
- xml解析系列(二)——用Marshaller和Unmarshaller解析xml
- 英语语法
- Python实现二叉树
- QQ应用自动登录最小化功能
- android 目录
- oracle学习之:CONNECT BY层次化查询
- NIO Channel
- 初学python--认识装饰器
- 图像处理算法工程师面试题
- CSS学习笔记-2
- 欢迎使用CSDN-markdown编辑器
- SharedPreferences存储ArrayList集合
- js实现缓动效果-让div运动起来
- ABAP SORT