读书人

Oracle树查询及相干函数

发布时间: 2012-11-17 11:14:15 作者: rapoo

Oracle树查询及相关函数

??? Oracle树查询的最重要的就是select...start with... connect by ...prior 语法了。依托于该语法,我们可以将一个表形结构的中以树的顺序列出来。在下面列述了Oracle中树型查询的常用查询方式以及经常使用的与树查询相关的Oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等。

????? 以我做过的一个项目中的表为例,表结构如下:

)。

????? 从顶部开始:

SELECT CONNECT_BY_ISLEAF, flfl.* FROM flflSTART WITH sjflid IS NULLCONNECT BY sjflid = PRIOR ID; ?????? connect_by_isleaf函数用来判断当前节点是否包含下级节点,如果包含的话,说明不是叶子节点,这里返回0;反之,如果不包含下级节点,这里返回1。

?

????? 至此,oracle树型查询基本上讲完了,以上的例子中的数据是使用到做过的项目中的数据,因为里面的内容可能不好理解,所以就全部用一些新的例子来进行阐述。以上所有SQL都在本机上测试通过,也都能实现相应的功能,但是并不能保证是解决这类问题的最优方案(如第8条明显写成存储过程会更好),如果谁有更好的解决方案、或者有关oracle树查询的任何问题,欢迎留言讨论,以上的SQL有什么问题也欢迎大家留言批评。

?

摘自:http://huajiang.iteye.com/blog/506604

读书人网 >其他数据库

热点推荐