connect by和strart with子句
--使用connect by和strart with子句
SELECT [level],column,expression, ...
FROM table
[WHERE where_clause]
[[START WITH start_condition] [CONNECT BY prior_condition]];
SELECT empno,
mgr,
ename,
job
FROM emp
START WITH mgr IS NULL
CONNECT BY PRIOR empno = mgr;
--使用偽列level
SELECT LEVEL,
empno,
mgr,
ename,
job
FROM emp
START WITH mgr IS NULL
CONNECT BY PRIOR empno = mgr
ORDER BY LEVEL, mgr, empno;

--格式化層次查詢的結果
SELECT LEVEL,
empno,
mgr,
lpad(' ',2*level-1)||ename as employee,
job
FROM emp
START WITH mgr is null
CONNECT BY PRIOR empno = mgr;

--從非根節點開始遍歷
SELECT LEVEL,
empno,
mgr,
lpad(' ',2*level-1)||ename as employee,
job
FROM emp
START WITH ename like 'JONES'
CONNECT BY PRIOR empno = mgr;

--在start with子句中使用子查詢
SELECT LEVEL,
empno,
mgr,
lpad(' ',2*level-1)||ename as employee,
job
FROM emp
START WITH empno=(select empno from emp where ename='CLARK')
CONNECT BY PRIOR empno = mgr;

--向上遍歷
SELECT LEVEL,
empno,
mgr,
lpad(' ',2*level-1)||ename as employee,
job
FROM emp
START WITH ename like 'JONES'
CONNECT BY PRIOR mgr=empno;

--從層次化查詢中刪除節點
SELECT LEVEL,
empno,
mgr,
lpad(' ',2*level-1)||ename as employee,
job
FROM emp
WHERE ename !='JONES'
START WITH mgr is null
CONNECT BY PRIOR empno = mgr;

--上面的查詢雖然刪除了節點但是並沒有刪除該節點的分支,為了連同分支也一併刪除,在connect by子句中使用and子句
SELECT LEVEL,
empno,
mgr,
lpad(' ',2*level-1)||ename as employee,
job
FROM emp
START WITH mgr is null
CONNECT BY PRIOR empno = mgr
AND ename !='JONES';

--在層次化查詢中加入其它條件
SELECT LEVEL,
empno,
mgr,
lpad(' ',2*level-1)||ename as employee,
job,
sal
FROM emp
WHERE sal<3000
START WITH mgr is null
CONNECT BY PRIOR empno = mgr;

connect by和strart with子句的更多相关文章
- Oracle学习之start with...connect by子句的用法
转自:http://www.blogjava.net/xzclog/archive/2010/03/05/314642.html,多谢博主分享 Oracle中start with…connect by ...
- Oracle 之 树查询 START WITH ... CONNECT BY ...子句
START WITH ... CONNECT BY ...子句是结构化查询中用到的,其基本语法是: select … from tablename start with 条件1 connect by ...
- Oracle中start with...connect by/start with…connect by prior子句的用法
connect by 是结构化查询中用到的,其基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3;例:select * ...
- Oracle中start with...connect by (prior)子句的用法
connect by 是结构化查询中用到的,基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3; 例:select * ...
- Start with connect by prior 递归查询
在SELECT命令中使用CONNECT BY和START WITH子句可以查询表中的树型结构关系.其命令格式如下: SELECT * from CONNECT BY {PRIOR列名1=列名2|列名1 ...
- oracle分层查询中的start with和connect by(树结构查询)
来源: http://blog.csdn.net/itmyhome1990/article/details/16338637 ORACLE是一个关系数据库管理系统,它用表的形式组织数据,在某些表 ...
- Oracle “CONNECT BY” 使用 [转]
Oracle “CONNECT BY”是层次查询子句,一般用于树状或者层次结果集的查询.其语法是: 1 [ START WITH condition ]2 CONNECT BY [ NOCYCLE ] ...
- PLSQL_基础系列11_递归和层次查询CONNECT BY(案例)
2015-05-31 Created By BaoXinjian
- oracle中 connect by prior 递归算法 -- 理解
oracle中 connect by prior 递归算法 -- 理解 http://blog.163.com/xxciof/blog/static/7978132720095193113752/ ...
随机推荐
- Kafka高可用实现
数据存储格式 Kafka的高可靠性的保障来源于其健壮的副本(replication)策略.一个Topic可以分成多个Partition,而一个Partition物理上由多个Segment组成. Seg ...
- java 常量 因为常量不依赖对象 所以一般都会将常量设置为 类属性
- Python中用dict统计列表中元素出现的次数
01 Python增加元素,不像其他语言使用现实的操作接口,只需要dict[1]=3,如果字典中不存在1,则直接新增元素键值对(1,3),如果存在则替换键1为3. if key in dict:判断出 ...
- BZOJ3462 DZY Loves Math II(动态规划+组合数学)
容易发现这是一个有各种玄妙性质的完全背包计数. 对于每个质数,将其选取个数写成ax+b的形式,其中x=S/pi,0<b<x.那么可以枚举b的部分提供了多少贡献,多重背包计算,a的部分直接组 ...
- MT【156】特例$a_n=\dfrac{6}{\pi n^2}$
设无穷非负数列$\{a_n\}$满足$a_n+a_{n+2}\ge2 a_{n+1},\sum\limits_{i=1}^{n}{a_i}\le1$,证明:$0\le a_n-a_{n+1}\le\d ...
- spark 调优——基础篇
开发调优 调优概述 Spark性能优化的第一步,就是要在开发Spark作业的过程中注意和应用一些性能优化的基本原则.开发调优,就是要让大家了解以下一些Spark基本开发原则,包括:RDD lineag ...
- CentOS 6.5下Squid代理服务器的安装与配置
1.1 缓存代理概述 作为应用层的代理服务器软件,squid主要提供缓存加速,应用层过滤控制的功能. 1. 代理的工作机制 当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存 ...
- 2018java面试集合
作者:刘成链接:https://www.zhihu.com/question/266822548/answer/317700943来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- SVN报错:Node remains in conflict显示冲突的解决办法
如果是提示文件冲突: svn revert --depth=infinity 有冲突的文件名 如果提示目录有冲突: svn revert --depth=infinity 目录名 搞定.
- Kubernetes 1.5 配置dashboard
配置kubernetes的dashboard相对简单.同样的,只需要从源码中获取到dashboard-controller.yaml及dashboard-service.yaml文件,稍加修改即可: ...