connect by prior start with 总结

来源:互联网 发布:linux ftp安装 编辑:程序博客网 时间:2024/05/22 00:40

connect by prior start with 经常会被用到一个表中存在递归关系的时候。比如我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中,而这些部门互相有隶属关系。这个时候你就会用到connect by prior start with。

典型的使用方法就是:

select * from table connect by prior cur_id=parent_id start with cur_id=???

例如:

a         b
1        0
2        1
3        1
4        2
5        3

如果想查找a=2及其下面的所有数据,则:

select * from table connect by prior a=b start with a=2

a        b
2        1
4        2

这些只是基础,皮毛。其实只要你灵活的构造查询语句。可以得出意想不到的结果。比如生成树每一个路径。

但是这些记录组成的树必须正常才可以。如果有互为父子的情况,就会出现循环错误!

原创粉丝点击