oracle的start with connect by prior如何使用

news/2024/6/19 4:28:55 标签: sql, java, oracle, mysql

oracle的start with connect by prior如何使用

oracle的start with connect by prior是根据条件递归查询"树",分为四种使用情况: 

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

1

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'(包括自己)及其子节点进行递归查询,结果如下

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

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

1

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'(包括自己)及其父节点进行递归查询,结果如下

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

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

1

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'(不包括自己)子节点进行递归查询,结果如下

 

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

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

1

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'(包括自己)的第一代孩子们及其父节点进行递归查询,结果如下

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

 如果有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条件进行过滤。


http://www.niftyadmin.cn/n/1116652.html

相关文章

敏捷AI | NLP技术在宜信业务中的实践【背景篇】

文章围绕基于机器学习的NLP技术在宜信内部各业务领域的应用实践展开,分享这一过程中的相关经验,包括智能机器人在业务支持、客户服务中的探索,基于文本语义分析的用户画像构建,以及NLP算法服务平台化实施思路等。本文为背景篇&…

mini2440 dm9000 网卡驱动详解 1

虽然Linux驱动程序应该是和具体的硬件平台分离的,但是为了更好的理解DM9000的驱动程序,这里还是结合一下Mini2440开发板,这样也可以更好的体会如何实现驱动和平台分离。 本文分成以下几个部分: 一、Mini2440开发板上DM9000的电气…

一次不是事故的SSH闪断问题

从前一天下午的一个瞬间,公司内所有的ssh 连接在没有任何征兆的情况下,全部开始闪断。 折腾了一天,关闭过SELinux, 清空过Iptables,软硬重启过服务器,交换机,路由,重新配置过sshd文件&#xff0…

调用 setState 之后发生了什么?

(1)代码中调用 setState 函数之后,React 会将传入的参数对象与组件当前的状态合并,然后触发所谓的调和过程(Reconciliation)。(2)经过调和过程,React 会以相对高效的方式…

.net post 字符串含有+号的时候,加号会变成空格 处理方法

value value.Replace("", "%2B"); 替换加号转载于:https://www.cnblogs.com/muxueyuan/p/10233079.html

数学 - 线性代数导论 - #4 矩阵分解之LU分解的意义、步骤和成立条件

线性代数导论 - #4 矩阵分解之LU分解的意义、步骤和成立条件 目前我们用于解线性方程组的方法依然是Gauss消元法。在Gauss消元法中,我们将右侧向量b与A写在一起作为一个增广矩阵进行同步的操作,这就默认了对A与b的操作数是相等的且每换一个b就要重复一遍…

解决:Nagios PROCS WARNING: 307 processes with STATE = RSZDT

Nagios每隔一个小时就给我一封这样的邮件: 内容如下: Xml代码 邮件主题:** PROBLEM Service Alert: localhost/Total Processes is WARNING ** 内容: ***** Nagios ***** Notification Type: PROBLEM Service: Tota…

kthread_create 简单使用

kthread_create:创建线程。struct task_struct *kthread_create(int (*threadfn)(void *data),void *data,const char *namefmt, ...);线程创建后,不会马上运行,而是需要将kthread_create() 返回的task_struct指针传给wake_up_proce…