oracle 中的select ...connect by prior ...start with 及(+)的用法
1.select ...connect by prior ...start with的用法:
select ... from <tablename>
where <conditional-1> --过滤条件,用于对返回的所有记录进行过滤
start with <conditional-2> --查询结果从起始根节点的限定条件
connect by prior <conditional-3> --连接条件
数据库表结构如下:
create table tablename
(
id number,
root_id number,
name varchar2(50),
desc varchar2(250)
)
insert into tablename(id,root_id,name,desc) values(1,0,'root','根节点');
insert into tablename(id,root_id,name,desc) values(2,1,'childnode1','子节点1');
insert into tablename(id,root_id,name,desc) values(3,1,'childnode2','子节点2');
insert into tablename(id,root_id,name,desc) values(4,0,'root2','根节点2');
insert into tablename(id,root_id,name,desc) values(5,4,'childnodeA','子节点1');
insert into tablename(id,root_id,name,desc) values(6,4,'childnodeB','子节点2');
得到完整树:
select * from tablename connect by prior id=root_id start with root_id=0
如果connect by prior 中的prior被省略,则查询将不进行深层递归。
如:
select * from tablename connect by id=root_id start with root_id=0
2.oracle中(+) (OUTER JOIN)的用法
SELECT A.id, B.IDD FROM A, B WHERE A.id(+)=B.IDD
等价于
SELECT A.id, B.IDD FROM A RIGHT OUTER JOIN B ON ( A.id=B.IDD)
意思是 两表关联的时候,
B 表的数据, 全部检索出来。
A表的数据,则是在B表有相对应的数据的情况下,才检索出来。
oracle 中的select ...connect by prior ...start with 及(+)的用法的更多相关文章
- oracle中 start with .. connect by prior.. 用法简介
我们经常会将一个比较复杂的目录树存储到一个表中.或者将一些部门存储到一个表中,而这些部门互相有隶属关系.这个时候你就会用到connect by prior start with.oracle 提供了s ...
- Oracle中start with...connect by (prior)子句的用法
connect by 是结构化查询中用到的,基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3; 例:select * ...
- 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 1 from 表格 start with ... connect by prior id = pId start with:表示以 ...
- oracle的start with connect by prior
oracle的start with connect by prior是根据条件递归查询"树",分为四种使用情况: 第一种:start with 子节点ID='...' connec ...
- oracle的start with connect by prior如何使用
oracle的start with connect by prior是根据条件递归查询"树",分为四种使用情况: 第一种:start with 子节点ID='...' connec ...
- oracle中 rownum 与 connect by的结合使用
原文:http://blog.sina.com.cn/s/blog_a26966d90102wwkb.html oracle中 rownum 与 connect by的结合使用 SELECT ROWN ...
- 在ORACLE中实现SELECT TOP N的方法----[转]
1.在ORACLE中实现SELECT TOP N 由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询. ...
- oracle的START WITH CONNECT BY PRIOR用法
转自:https://www.cnblogs.com/linjiqin/archive/2013/06/24/3152674.html Oracle 树操作(select…start with…con ...
随机推荐
- IO库 8.4
题目:编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个独立的元素存于vector中. #include <iostream> #includ ...
- 解决jni链接时找不到函数的问题
用jni调用库函数时,经常会碰到link的错误,具体出错信息如下: 08-07 01:42:06.490: E/AndroidRuntime(1665): java.lang.UnsatisfiedL ...
- python练习之list
请用索引取出下面list的指定元素: # -*- coding: utf-8 -*- L = [ ['Apple', 'Google', 'Microsoft'], ['Java', 'Python' ...
- Gartner 认定 Microsoft 为具有远见卓识的云基础结构即服务提供商
四个月前, Windows Azure 基础结构服务结束了预览版阶段,正式发布了,它具有业内领先的 SLA.随后, 凭借愿景的完整性和执行力,Gartner 很快认可了 Microsoft 在市场中的 ...
- 美国vps哪个比较好,vps国内访问速度最快!
沃网中国是一家成立于2008年的国内idc商,提供基于hyper-v架构的VPS产品,数据中心包括国内电信.美国洛杉矶等,他们采用的是国内访问最快的加州机房ping值,160-180左右相当给力的速度 ...
- svn在linux下的使用(svn命令行)ubuntu 删除 新增 添加 提交 状态查询 恢复
合并步骤:(1)先切换到分支:(2)svn merge trunk . (3)svn sw trunk (4)svn merge --reintegrate branch . svn merge ht ...
- ios蓝牙开发(一)蓝牙相关基础知识
蓝牙常见名称和缩写 MFI ======= make for ipad ,iphone, itouch 专们为苹果设备制作的设备 BLE ==== buletouch low energy,蓝牙4.0 ...
- Android视频应用去广告学习实践
注意:本文仅仅供学习研究用途 第一步 素材搜集 腾讯视频应用:http://download.csdn.net/detail/itleaks/7991795 反汇编工具: ...
- HTML5API___Web Storage
Web Storage 是html5的本地存储规范 支持:移动平台基本支持 (opera mini除外) ie8+ff chrome 等 支持 它包含2个: sessionStorage 会话存储 ...
- NSLog 输出文件名、方法名、行号
项目中经常会需要根据日志输出来寻找源代码,通过以下方法可以让它自动输出文件名.方法.行号,非常方便. 找到项目的pch文件,添加以下内容即可: ...为三个英文句号(复制粘贴后可能会变化). /** ...