ITPub博客

首页 > 数据库 > Oracle > Oracle中connect by的使用

Oracle中connect by的使用

Oracle 作者:wzz860934 时间:2012-11-20 11:32:14 0 删除 编辑

标题:Oracle中connect by的使用

基本语法如下:

select ... from <TableName>

where <Conditional-1>

start with <Conditional-2>

connect by <Conditional-3>

参数说明:

<Conditional-1>:过滤条件,用于对返回的所有记录进行过滤。

<Conditional-2>:是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。

<Conditional-3>:是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录

 

示例:

--创建表

create table Test

(

id number(5),

name varchar2(10),

parentid number(5)

);

--插入语句

insert into Test values(1,'父级部门1',0);

insert into Test values(2,'父级部门2',0);

insert into Test values(3,'二级部门1',1);

insert into Test values(4,'二级部门2',1);

insert into Test values(5,'二级部门3',1);

insert into Test values(6,'二级部门4',2);

insert into Test values(7,'二级部门5',2);

insert into Test values(8,'三级部门1',7);

commit;

 

--测试语句

select * from test

start with id=1

connect by prior id=parentid order by id

注意:

1.  id=parentid中,id和parentid的位置不能交换,id=parentid表示parentid的值来源于id中

2.  prior的位置:如果prior放置于connect by 之后则表示从树的顶级向下查找,如:connect by prior id=parentid

    如果prior放置于等号之后则表示从树的下面向上查找,如:connect by id=prior parentid

3.  start with 里面的参数表示定义查找的起始位置,定义之后将会按照起始位置和查找的方向进行查找

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23878050/viewspace-1117541/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-05-09