oracle的start with connect by prior如何使用

Wesley13
• 阅读 835
oracle的start with connect by prior是根据条件递归查询"树",分为四种使用情况: 第一种:start with 子节点ID='...' connect by prior 子节点ID = 父节点ID

select * from mdm_organization o start with o.org_code='10000008' connect by prior o.org_code=o.org_parent_code

 按照条件org_code='10000008',对'10000008'(包括自己)及其子节点进行递归查询,结果如下

oracle的start with connect by prior如何使用

   查询结果自己所有的后代节点(包括自己)。

第二种:start with 子节点ID='...' connect by 子节点ID = prior 父节点ID

select * from mdm_organization o start with o.org_code='10000008' connect by o.org_code=prior o.org_parent_code

 按照条件org_code='10000008',对'10000008'(包括自己)及其父节点进行递归查询,结果如下

oracle的start with connect by prior如何使用

 查询结果自己所有的前代节点(包括自己)。

第三种:start with 父节点ID='...' connect by prior 子节点ID = 父节点ID

select * from mdm_organization o start with o.org_parent_code='10000008' connect by prior o.org_code=o.org_parent_code

 按照条件org_parent_code='10000008',对'10000008'(不包括自己)子节点进行递归查询,结果如下

 oracle的start with connect by prior如何使用

查询结果自己所有的后代节点(不包括自己)。

第四种:start with 父节点ID='...' connect by 子节点ID = prior 父节点ID

select * from mdm_organization o start with o.org_parent_code='10000008' connect by o.org_code = prior o.org_parent_code

按照条件org_parent_code='10000008',对'10000008'(包括自己)的第一代孩子们及其父节点进行递归查询,结果如下

oracle的start with connect by prior如何使用

 查询结果自己的第一代后节点和所有的前代节点(包括自己)。

如果有where 条件,如下

select * from mdm_organization o where 条件 start with o.org_parent_code='10000008' connect by o.org_code = prior o.org_parent_code

执行顺序为先执行start with connect by prior,然后再按照where条件进行过滤。

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
Vue 仿钉钉流程图(流程节点绘制 vue+Ant【如果用其他UI库需要替换几个组件】 附 demo)
Vue仿钉钉流程图(流程节点绘制vueAntDesignofVue)仿钉钉流程图Api包括:一维数组传参,获取单节点数据,返回所有节点组成的一位数组生成每个节点的父节点Id集合很多公司后台管理系统都需要画流程图,功能大同小异,所以,仿照钉钉管理
菜园前端 菜园前端
2年前
DOM 文档对象模型使用教程来喽!
原文链接:HTML模板html我是网站标题访问节点通过id访问指定节点getElementByIdjavascriptvarnodedocument.getElementById('box')通过name访问指定节点getElementsByNamejav
Wesley13 Wesley13
3年前
JS获取子节点、父节点和兄弟节点的方法实例总结
1.js获取子节点的方式1.通过获取dom方式直接获取子节点varadocument.getElementById("test").getElementsByTagName("div"); 2.通过children来获取子节点利用children来获取子元素是最方便的,他也会返回出一个
Stella981 Stella981
3年前
ELementUI 树形控件tree 获取子节点同时获取半选择状态的父节点ID
使用elementui tree树形控件的时候,在选择一个子节点后,使用getCheckedKeys后,发现只能返回子节点的ID,但是其父节点ID没有返回。解决办法有三种:1.elementui有一个获取半选择状态值ID得方法  getHalfCheckedKeys  这个方法用来获取父节点半选择状态ID值2.修改源码  找到
Wesley13 Wesley13
3年前
oracle connect by用法
Oracle中可以通过STARTWITH...CONNECTBY...子句来实现SQL的层次查询.自从Oracle9i开始,可以通过SYS\_CONNECT\_BY\_PATH函数实现将父节点到当前行内容以“path”或者层次元素列表的形式显示出来。自从Oracle10g中,还有其他更多关于层次查
Wesley13 Wesley13
3年前
B
BTreeBTree又叫做B树,和平衡二叉树不同的地方在于B树是多叉树(平衡多路查找树),Oracle和MongoDB的索引技术就是基于B树的数据结构,B树也可以看作是对23查找树的一种扩展。一个m阶的BTree有以下性质1.每个节点最多有m个子节点;2.每个非叶子节点(根节点除外)至少含有m/2个子节点;3.
Wesley13 Wesley13
3年前
mysql 递归查询父节点 和子节点
查父集合!复制代码(https://oscimg.oschina.net/oscnet/eb1fba162f56102d7cc443e384b4b808941.gif)dropFUNCTIONgetParentListCREATEFUNCTIONgetParentList(roo
美凌格栋栋酱 美凌格栋栋酱
1个月前
Oracle常用语法
1.递归函数SELECT...FROMWHERE(过滤返回记录,仅过滤被限定节点,其根节点和子节点均不受影响)STARTWITH(根节点,可以指定多个节点)CONNECTBYPRIOR(连接条件,PRIOR置于等号前,则从根节点到叶节点开始检索;置于等号后
贾蔷 贾蔷
1星期前
手搓二叉树构建类代码详解:从入门到实践(适合新手小白)
一、简介和应用二叉树是数据结构中常见的一种树形结构,每个节点最多有两个子节点(左子节点和右子节点)。它广泛应用于算法设计、数据存储与搜索(如二叉搜索树)、表达式解析等领域。本文将通过手写的C代码,讲解如何构建一个基础的二叉树类,帮助新手理解其原理与实现
深度学习 深度学习
1星期前
【CSP-S 2019】括号树(洛谷P5658):栈+DFS
一、题目解读括号树问题(洛谷P5658)要求处理一个由括号序列转化的树结构:每个节点表示一个括号,'('为子节点,')'为父节点。题目给定一棵n个节点的树,需计算每个节点的深度(括号层数),并输出所有节点深度与节点编号乘积的异或和。核心在于将括号序列转化为