oracle的start with connect by prior如何使用

Wesley13
• 阅读 698
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集合很多公司后台管理系统都需要画流程图,功能大同小异,所以,仿照钉钉管理
菜园前端 菜园前端
1年前
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.
Stella981 Stella981
3年前
LeetCode112
非商业,LeetCode链接附上:https://leetcodecn.com/problems/pathsum/进入正题。题目:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和
Wesley13 Wesley13
3年前
mysql 递归查询父节点 和子节点
查父集合!复制代码(https://oscimg.oschina.net/oscnet/eb1fba162f56102d7cc443e384b4b808941.gif)dropFUNCTIONgetParentListCREATEFUNCTIONgetParentList(roo
小万哥 小万哥
7个月前
DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧
遍历是指通过或遍历节点树遍历节点树通常,您想要循环一个XML文档,例如:当您想要提取每个元素的值时。这被称为"遍历节点树"。下面的示例循环遍历所有的子节点,并显示它们的名称和值:htmlvarx,i,xmlDoc;vartxt"";vartext"""E
美凌格栋栋酱 美凌格栋栋酱
1个月前
Oracle常用语法
1.递归函数SELECT...FROMWHERE(过滤返回记录,仅过滤被限定节点,其根节点和子节点均不受影响)STARTWITH(根节点,可以指定多个节点)CONNECTBYPRIOR(连接条件,PRIOR置于等号前,则从根节点到叶节点开始检索;置于等号后