START WITH CONNECT BY PRIOR子句实现递归查询,主要用于查询数据中的树型结构关系[父子关系]
2015-12-10 14:43
232 查看
假设数据库中有表名table_1而table_1中有两列num1,num2。num1是num2的父亲节点。
1.自底向上查找父子关系:
select num1,num2,level
from table_1
start with num2=1008
connect by num2=prior num1 order by level desc;
解释:首先查询num2为1008的数据,然后通过本条数据的num1等于下条数据的num2来进行递归查询。
2.自顶向下查找父子关系
select num1,num2,level
from table_1
start with num2=1008
connect by prior num2= num1 order by level desc;
解释:首先查询num2为1008的数据,然后通过本条数据的num2等于下条数据的num1来进行递归查询。
总结:
prior 放的位置决定了是自顶向下还是自底向上查询,即决定了是查找父亲节点还是查找孩子节点。[b]prior 后面跟着的列代表的是本条记录中的列。level代表在树形结构中的等级。[/b]
1.自底向上查找父子关系:
select num1,num2,level
from table_1
start with num2=1008
connect by num2=prior num1 order by level desc;
解释:首先查询num2为1008的数据,然后通过本条数据的num1等于下条数据的num2来进行递归查询。
2.自顶向下查找父子关系
select num1,num2,level
from table_1
start with num2=1008
connect by prior num2= num1 order by level desc;
解释:首先查询num2为1008的数据,然后通过本条数据的num2等于下条数据的num1来进行递归查询。
总结:
prior 放的位置决定了是自顶向下还是自底向上查询,即决定了是查找父亲节点还是查找孩子节点。[b]prior 后面跟着的列代表的是本条记录中的列。level代表在树形结构中的等级。[/b]
相关文章推荐
- 深入浅出linux内核源代码之双向链表list_head(上)
- UIView提供坐标系转换方法
- 初识backbone.js(1)
- OCP-1Z0-051-2015-51题
- 12306火车票查询api调用文档
- CXF开发webservice需要的最少jar包
- virsh 管理虚机
- CXF开发webservice需要的最少jar包
- NSError errorcode
- leetcode:70 Climbing Stairs-每日编程第十五题
- iframe页面自适应宽高经验
- IOS --- UITableView 表示图(头部和尾部)
- [原创][FPGA]时钟分频之奇分频(5分频)
- ThreadLocal理解
- credentials 中的validator和encoding
- 指定文件压缩并提交到SVN
- iOS中UITextField的字数限制
- 欢迎使用CSDN-markdown编辑器
- ntpclent
- Java---布局管理代码简单使用(解答)