您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

oracle树中prior的用法

bubuko 2022/1/25 20:04:59 其他 字数 6013 阅读 684 来源 http://www.bubuko.com/infolist-5-1.html

转自:https://blog.csdn.net/WuLex/article/details/82773890 数据说明一切: 总结: 1)prior放在子节点端,则表示扫描树是以start with指定的节点作为根节点从上往下扫描。可能对应一个或多个分支。start with可以省略,如果省略,表 ...

转自:https://blog.csdn.net/WuLex/article/details/82773890

 数据说明一切:

技术分享图片

 

 技术分享图片

 

 

总结:

1)prior放在子节点端,则表示扫描树是以start with指定的节点作为根节点从上往下扫描。可能对应一个或多个分支。
start with可以省略,如果省略,表示对所有节点都当成根节点分别进行遍历
2)prior放在父节点端,则表示扫描树是以start with指定的节点作为最低层子节点,从下往上扫描。顺序是子节点往父节点扫描,直到根节点为止,这种情况只能得到一个分支。
start with可以省略,如果省略,表示对所有节点都当成最低层子节点分别往根节点方向遍历

最后会了上面大家应该知道下面 sys_connect_path()

sys_connect_by_path 函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示:技术分享图片

 

oracle递归查询子节点

通过子节点向根节点追朔.

技术分享图片

 

 

备注:

start with ...connect by 的用法,start with 后面所跟的就是就是递归的种子。
递归的种子也就是递归开始的地方 connect by 后面的"prior" 如果缺省:则只能查询到符合条件的起始行,并不进行递归查询;
connect by prior 后面所放的字段是有关系的,它指明了查询的方向。

练习: 通过子节点获得顶节点

select FIRST_VALUE(deptid) OVER (ORDER BY LEVEL DESC ROWS UNBOUNDED PRECEDING) AS firstdeptid from persons.dept start with deptid=76 connect by prior paredeptid=deptid

表结构

技术分享图片

 

 

 

oracle树中prior的用法

原文:https://www.cnblogs.com/4AMLJW/p/treePrior202003170946.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶