start with connect by prior
来源:互联网 发布:专业电脑数据恢复 编辑:程序博客网 时间:2024/06/05 03:57
语法:
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 FC_ZTREE start with ID = 1 connect by prior ID = PID
start with ID = 1表示从ID = 1的记录开始查询,向叶子的方向递归,
递归条件是ID = PID,当前记录的ID等于子记录的PID
●●●对查询结果过滤 select * from FC_ZTREE where INTRO like '%basic%' start with ID = 101 connect by prior ID = PID
首先使用start with... connect by prior查询出树形的结构,然后where条件才生效,对全部查询结果进行过滤
如果先进行where条件过滤,则过滤后的结果可能不能够成一个树结构,所以必须先查询出树才能够进行过滤
●●●prior的作用 prior关键字表示不进行递归查询,仅查询出满足id=1的记录,下面是将第一个查询去掉prior关键字后结果
select * from FC_ZTREE start with ID = 101 connect by ID = PID
效果与select * from FC_ZTREE where ID = 101 相同
总结:
2)prior放在父节点端,则表示扫描树是以start with指定的节点作为最低层子节点,从下往上扫描。
顺序是子节点往父节点扫描,直到根节点为止,这种情况只能得到一个分支。
start with可以省略,如果省略,表示对所有节点都当成最低层子节点分别往根节点方向遍历
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 FC_ZTREE start with ID = 1 connect by prior ID = PID
start with ID = 1表示从ID = 1的记录开始查询,向叶子的方向递归,
递归条件是ID = PID,当前记录的ID等于子记录的PID
●●●对查询结果过滤 select * from FC_ZTREE where INTRO like '%basic%' start with ID = 101 connect by prior ID = PID
首先使用start with... connect by prior查询出树形的结构,然后where条件才生效,对全部查询结果进行过滤
如果先进行where条件过滤,则过滤后的结果可能不能够成一个树结构,所以必须先查询出树才能够进行过滤
●●●prior的作用 prior关键字表示不进行递归查询,仅查询出满足id=1的记录,下面是将第一个查询去掉prior关键字后结果
select * from FC_ZTREE start with ID = 101 connect by ID = PID
效果与select * from FC_ZTREE where ID = 101 相同
总结:
1)prior放在子节点端,则表示扫描树是以start with指定的节点作为根节点从上往下扫描。
可能对应一个或多个分支。
start with可以省略,如果省略,表示对所有节点都当成根节点分别进行遍历2)prior放在父节点端,则表示扫描树是以start with指定的节点作为最低层子节点,从下往上扫描。
顺序是子节点往父节点扫描,直到根节点为止,这种情况只能得到一个分支。
start with可以省略,如果省略,表示对所有节点都当成最低层子节点分别往根节点方向遍历
0 0
- connect by prior start with
- connect by prior start with
- CONNECT BY PRIOR... START WITH
- connect by prior start with
- Start With......Connect by prior..
- start with connect by prior
- connect by prior...start with...
- start with ... connect by prior ...
- start with ... CONNECT BY PRIOR
- start with --connect by prior
- START WITH CONNECT BY PRIOR
- start with connect by prior
- connect by prior start with 总结
- connect by prior start with 用法
- connect by prior start with语句详解
- start with...connect by prior子句用法
- Oracle start with ... connect by prior 用法
- Oracle中start with...connect by prior
- 队列及其c语言实现
- JAVA经典循环案例
- BNU Training 2016.07.29 总结
- HDU 4731 Minimum palindrome
- Theano Tutorial文档翻译(四) - 更多例子
- start with connect by prior
- Codeforces Round #364 (Div. 2) C. They Are Everywhere (尺取法)
- 公司面试记录
- [安卓自定义类库]写一个自己的轻量级ImageLoader——LightImageLoader
- hdoj 1532 Drainage Ditches
- 傅里叶分析之掐死教程
- POJ 3687 Labeling Balls
- 最大流 Ford-Fulkerson算法模板
- 一些比较精妙的宏定义