ITPub博客

首页 > 数据库 > Oracle > oracle中的递归sql查询 connect by prior实现递归

oracle中的递归sql查询 connect by prior实现递归

原创 Oracle 作者:dotaddjj 时间:2011-07-22 17:57:59 0 删除 编辑

oracle中的递归sql查询,connect by prior实现递归
可以使用start with...connect by子句递归查询一般用于一个表维护树形结构的应用
table的具体column
a b
1 0
2 1
3 1
4 2
5 3
如果想查找a=2及其下面的的所有数据,则:
select a,b from table start with a=2 connect by prior a=b
a b

2 1

4 2
其中也就是把a=2这条数据当做一个根目录开始递归查询。
其中的connect by prior a=b中靠近prior的a则表示a是父节点,在另一侧表示子节点。
接着找b能跟上一个父节点a相等的值也就是b=2的值,找到后再次记录当下的节点的a=4,并成为下一个查询的父节点的值,也就是下次查询要查找b=4的值,
继续循环下去直到下一个b的值无法满足上一节点a的值时结束了递归的查询。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1052895/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    220
  • 访问量
    1662970