Oracle start with ... connect by prior 用法
来源:互联网 发布:手机论坛网站源码 编辑:程序博客网 时间:2024/04/27 22:53
语法:
select *
from 表名
where 条件1
start with 条件2
connect by prior 当前表字段=级联表字段
start with与connect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用。
start with表示开始的记录
connect by prior 指定与当前记录关联时的字段关系
代码:
--创建部门表,这是一个具有层次结构的表,子记录通过parent_id与父记录的id进行关联
create table DEPT(
ID NUMBER(9) PRIMARY KEY, --部门ID
NAME VARCHAR2(100), --部门名称
PARENT_ID NUMBER(9) --父级部门ID,通过此字段与上级部门关联
);
向表中插入如下数据,为了使代码简单,一个部门仅具有一个下级部门
●从根节点开始查询递归的记录
select *
from dept
start with id=1
connect by prior id = parent_id;
下面是查询结果,start with id=1表示从id=1的记录开始查询,向叶子的方向递归,递归条件是id=parent_id,当前记录的id等于子记录的parent_id
●从叶子节点开始查询递归的记录
select *
from dept
start with id=5
connect by prior parent_id = id;
下面是查询结果,递归条件按照当前记录的parent_id等与父记录的id
●对查询结果过滤
select *
from dept
where name like '%销售%'
start with id=1
connect by prior id = parent_id;
在下面的查询结果中可以看到,首先使用start with... connect by prior查询出树形的结构,然后where条件才生效,对全部查询结果进行过滤
●prior的作用
prior关键字表示不进行递归查询,仅查询出满足id=1的记录,下面是将第一个查询去掉prior关键字后结果
select *
from dept
start with id=1
connect by prior id = parent_id;
select *
from 表名
where 条件1
start with 条件2
connect by prior 当前表字段=级联表字段
start with与connect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用。
start with表示开始的记录
connect by prior 指定与当前记录关联时的字段关系
代码:
--创建部门表,这是一个具有层次结构的表,子记录通过parent_id与父记录的id进行关联
create table DEPT(
ID NUMBER(9) PRIMARY KEY, --部门ID
NAME VARCHAR2(100), --部门名称
PARENT_ID NUMBER(9) --父级部门ID,通过此字段与上级部门关联
);
向表中插入如下数据,为了使代码简单,一个部门仅具有一个下级部门
●从根节点开始查询递归的记录
select *
from dept
start with id=1
connect by prior id = parent_id;
下面是查询结果,start with id=1表示从id=1的记录开始查询,向叶子的方向递归,递归条件是id=parent_id,当前记录的id等于子记录的parent_id
●从叶子节点开始查询递归的记录
select *
from dept
start with id=5
connect by prior parent_id = id;
下面是查询结果,递归条件按照当前记录的parent_id等与父记录的id
●对查询结果过滤
select *
from dept
where name like '%销售%'
start with id=1
connect by prior id = parent_id;
在下面的查询结果中可以看到,首先使用start with... connect by prior查询出树形的结构,然后where条件才生效,对全部查询结果进行过滤
●prior的作用
prior关键字表示不进行递归查询,仅查询出满足id=1的记录,下面是将第一个查询去掉prior关键字后结果
select *
from dept
start with id=1
connect by prior id = parent_id;
转至:http://www.ej38.com/showinfo/Oracle-135901.html
- Oracle start with ... connect by prior 用法
- Oracle start with...connect by prior用法
- Oracle start with connect by prior 用法
- Oracle start with ... connect by prior 用法
- Oracle start with connect by prior 用法
- oracle start with connect by prior 用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with…connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- oracle开发:start with...connect by prior用法
- oracle中START WITH ... CONNECT BY PRIOR的用法
- Oracle中start with...connect by prior子句用法
- Oracle中start with...connect by prior子句用法
- HDOJ 3046 - Pleasant sheep and big big wolf 构图最小割
- IOS7 打印 AssertMacros: queueEntry, file:
- 电子钱包、电子现金与qPBOC
- 三十分钟掌握STL
- [Codecademy] HTML&CSS 第一课:HTML Basic
- Oracle start with ... connect by prior 用法
- QCIF、CIF、DCIF、D1分辨率是多少
- linux出错以及解决问题记录
- 开发注意:Firefox和IE兼容注意事项
- 后缀数组
- hdu 4712 Hamming Distance(爆搞)
- hdu 4714 Tree2cycle
- HEVC帧内DC预测函数predIntraGetPredValDC()
- android中listview添加2个headerview显示效果的演示