oracle 递归查询
2013-08-13 09:31
176 查看
前言:工作遇到一个需求,获取某城市的所有上级行政机关,由此学习了“oracle的递归查询”
鸣谢:http://www.2cto.com/database/201205/132895.html
扩展:http://www.itpub.net/thread-1718336-1-1.html
/article/6028963.html
http://database.51cto.com/art/201009/227393.htm
心得:
关于是从下往上查
只取一条可以外层嵌套一层查询
Oracle递归查询示例分析
start with connect by 层次查询(Hierarchical Queries)
![](http://www.2cto.com/uploadfile/2012/0523/20120523014842382.png)
从顶级向下级查询
Select a.areaid,a.name,a.parentid,a.levelcode
From prnbsn_area a www.2cto.com
Start With a.areaid = 3 Connect By Prior a.areaid=a.parentid
该查询会查出所有的重庆子级区域
![](http://www.2cto.com/uploadfile/2012/0523/20120523014844903.png)
从下向上查询
Select a.areaid,a.name,a.parentid,a.levelcode
From prnbsn_area a
Start With a.areaid = 78
Connect By Prior a.parentid = a.areaid
![](http://www.2cto.com/uploadfile/2012/0523/20120523014845254.png)
查询三亚(78)的所有上级
www.2cto.com
start with: 表示根记录的条件(从那条记录开始)
connect by: 指定了父记录行和子记录行之间的关系,在层次查询中,条件表达式必须使用prior操作符来指定父记录行
如:
CONNECT BY PRIOR pid = id 或者CONNECT BY pid = PRIOR id
如果connect by 条件是一个组合条件,那么只有一个条件需要prior操作符,
如:
CONNECT BY last_name != 'King' AND PRIOR employee_id = manager_id
不过,connect by 不能包含子查询。
prior是一个二元操作符
鸣谢:http://www.2cto.com/database/201205/132895.html
扩展:http://www.itpub.net/thread-1718336-1-1.html
/article/6028963.html
http://database.51cto.com/art/201009/227393.htm
心得:
关于是从下往上查
只取一条可以外层嵌套一层查询
Oracle递归查询示例分析
start with connect by 层次查询(Hierarchical Queries)
![](http://www.2cto.com/uploadfile/2012/0523/20120523014842382.png)
从顶级向下级查询
Select a.areaid,a.name,a.parentid,a.levelcode
From prnbsn_area a www.2cto.com
Start With a.areaid = 3 Connect By Prior a.areaid=a.parentid
该查询会查出所有的重庆子级区域
![](http://www.2cto.com/uploadfile/2012/0523/20120523014844903.png)
从下向上查询
Select a.areaid,a.name,a.parentid,a.levelcode
From prnbsn_area a
Start With a.areaid = 78
Connect By Prior a.parentid = a.areaid
![](http://www.2cto.com/uploadfile/2012/0523/20120523014845254.png)
查询三亚(78)的所有上级
www.2cto.com
start with: 表示根记录的条件(从那条记录开始)
connect by: 指定了父记录行和子记录行之间的关系,在层次查询中,条件表达式必须使用prior操作符来指定父记录行
如:
CONNECT BY PRIOR pid = id 或者CONNECT BY pid = PRIOR id
如果connect by 条件是一个组合条件,那么只有一个条件需要prior操作符,
如:
CONNECT BY last_name != 'King' AND PRIOR employee_id = manager_id
不过,connect by 不能包含子查询。
prior是一个二元操作符
相关文章推荐
- oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询
- 在oracle中通过connect by prior来实现递归查询!
- Oracle 递归查询
- oracle及postgresql递归查询
- oracle11.2g递归查询(树形结构查询)
- 对于oracle进行简单树查询(递归查询)
- 对于oracle进行简单树查询(递归查询)
- oracle递归查询
- Oracle递归查询
- Oracle中的递归查询
- oracle一条语句递归查询父子关系
- oracle递归查询
- Oracle递归查询
- db2和oracle中的树查询(递归查询)语句
- oracle中的递归查询
- Oracle递归查询
- oracle 递归查询例子
- 在oracle中通过connect by prior来实现递归查询!
- 令人迷糊的Oracle递归查询(start with)
- Oracle通过递归查询父子兄弟节点方法示例