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 及(+)的用法的更多相关文章

  1. oracle中 start with .. connect by prior.. 用法简介

    我们经常会将一个比较复杂的目录树存储到一个表中.或者将一些部门存储到一个表中,而这些部门互相有隶属关系.这个时候你就会用到connect by prior start with.oracle 提供了s ...

  2. Oracle中start with...connect by (prior)子句的用法

    connect by 是结构化查询中用到的,基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3; 例:select * ...

  3. Oracle中start with...connect by/start with…connect by prior子句的用法

    connect by 是结构化查询中用到的,其基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3;例:select * ...

  4. Oracle递归查询start with connect by prior

    一.基本语法 connect by递归查询基本语法是: select 1 from 表格 start with ... connect by prior id = pId start with:表示以 ...

  5. oracle的start with connect by prior

    oracle的start with connect by prior是根据条件递归查询"树",分为四种使用情况: 第一种:start with 子节点ID='...' connec ...

  6. oracle的start with connect by prior如何使用

    oracle的start with connect by prior是根据条件递归查询"树",分为四种使用情况: 第一种:start with 子节点ID='...' connec ...

  7. oracle中 rownum 与 connect by的结合使用

    原文:http://blog.sina.com.cn/s/blog_a26966d90102wwkb.html oracle中 rownum 与 connect by的结合使用 SELECT ROWN ...

  8. 在ORACLE中实现SELECT TOP N的方法----[转]

    1.在ORACLE中实现SELECT TOP N 由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询. ...

  9. oracle的START WITH CONNECT BY PRIOR用法

    转自:https://www.cnblogs.com/linjiqin/archive/2013/06/24/3152674.html Oracle 树操作(select…start with…con ...

随机推荐

  1. hdu4099

    要想通这个题目应该很容易,由于斐波纳契数在近100项之后很大,早就超出long long了.而输入最长的序列才40个数字,所以大约保留前50位,前40位是没有误差的!!!其实,想想我们判断double ...

  2. request.getParameter中文乱码问题

    http请求是以ISO-8859-1的编码来传送url的 如果页面的content-type为utf-8,那么在发送请求时,会将字符转成utf-8后进行传送              如: 中 的UT ...

  3. HTML中小问题

    1.a标签不添加href这个属性时,不会出现鼠标变成手型~

  4. 少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案

    相信大家都遇到过这样的问题,有手机浏览器的问题导致服务端SESSION读取不正常,目前在项目中的解决方法是采取H5手机本地存储唯一KEY解决的 代码片段 //定义json格式字符串 var userD ...

  5. PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different

    启动PL/SQL Developer 报字符编码不一致错误 Database character set (AL32UTF8) and Client character set (ZHS16GBK) ...

  6. 微信平台BAE

    http://www.2cto.com/kf/201405/299487.html http://blog.csdn.net/lyq8479/article/details/26104667 http ...

  7. 【转】android权限列表

    访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permiss ...

  8. .NET(C#):XmlReader和Whitespace以及MoveToContent和ReadToFollowing方法

    原文 http://www.cnblogs.com/mgen/archive/2012/04/26/2471403.html XmlReader默认是读取XML文件中的Whitespace和注释的. ...

  9. ExpandableListView(一)替换系统默认的箭头

    很多朋友可能在android开发中,用过ExpandableListView这个组件,这个组件功能强大,比传统的ListView有好多优势.然而在开发中,我相信有好多人,包括我个人都会遇到下面的一些问 ...

  10. SQL Server 2008 错误 233 的解决办法

    问题一.忘记了登录Microsoft SQL Server 2008 的sa的登录密码 解决方法:先用windows身份验证的方式登录进去,然后在‘安全性’-‘登录’-右键单击‘sa’-‘属性’,修改 ...