Oracle 中递归查询
来源:互联网 发布:没有系统的嵌入式编程 编辑:程序博客网 时间:2024/04/30 19:22
转自:http://blog.sina.com.cn/s/blog_50fa47c70100h5d1.html
有这样的一个需求:
顺义区的 region_code 是 110113 ,parent_code 是110000 ,亦即 顺义的父记录是北京。
Oracle SQL 语句 start with ...connect by [prior]:
start with 后面所跟的就是就是递归的种子,也就是递归开始的地方.
connect by 后面的"prior" 如果缺省:则只能查询到符合条件的起始行,并不进行递归查询;connect by prior 后面所放的字段是有关系的,它指明了查询的方向
select Column1,Column2,from tableName
start with Column 1='1234'
connect by prior Column1 =Column2
根据 谁(子节点,父节点) 语句最后的 connect by prior Column1 =Column2 Column2就写成谁
也就是 : 如果根据 子节点查询,Column2 就要写成 子节点代表的 字段
如果根据 父节点查询,Column2 就要写成 父节点代表的 字段
1. 通过 子记录查询父记录
现在要求根据顺义的 region_code 查询出其上级所有的记录。也就是根据 子节点的记录,查询父节点记录。
select region_code,region_desc,parent_code from V_REGION_CODE
start with region_code ='110113'
connect by prior parent_code=region_code
解释: 如果是通过 子节点查询父节点记录,则 connect by prior 要写成 ParentColumn = ChildColumn
2.通过父记录查询子记录
现在要求根据北京的region_code 查询所有北京的子记录。也就是根据父节点查询 子节点。
select region_code,region_desc ,parent_code from V_REGION_CODE
start with region_code ='110000'
connect by prior region_code=parent_code
解释: 如果通过 父节点 查询子节点记录, 则connect by prior 要写成 chilidColumn = praentColumn
3.可通过level 关键字查询所在层次.
- Oracle 中递归查询
- Oracle中递归查询
- oracle 中递归查询语句
- ORACLE中使用递归查询
- oracle 中递归查询的使用
- oracle中sql的递归查询运用
- 级联查询 oracle 中connect by prior实现递归查询
- oracle递归查询
- oracle 递归查询
- ORACLE的递归查询
- oracle 递归查询
- Oracle 递归查询
- Oracle递归查询
- oracle 递归查询
- ORACLE递归查询
- Oracle 递归查询
- Oracle递归查询
- oracle树递归查询
- Linux 创建文件系统及挂载文件系统流程详解
- MFC中的_T宏
- 详细解释PHP中header和content-type参数
- 解析/etc/inittab 文件(转)
- 反射技术显示类型的应字符串问题
- Oracle 中递归查询
- 在做一个socket短连接转长连接的程序
- Java抽象类和接口的区别
- Shopping Mall 的诞生! 使用Struts 2,MyBatis,JQuery开发Web应用程序!
- 宏定义求结构体内变量偏移
- abstract class和 interface
- Struts2验证框架的配置及validation.xml常用的验证规则
- Team Meeting Summary
- 哈夫曼树及哈夫曼编码 C++代码实现