首页 > 数据库 > Oracle > Oracle中connect by的使用
标题: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.
2.
3.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23878050/viewspace-1117541/ ,如需转载,请注明出处,否则将追究法律责任。