Oracle start with connect by prior 递归查询

news2024/11/16 7:27:39

基本语法

selectfrom tablename
where 条件1
start with 条件2
connect by 条件3(PRIOR);

条件1:相当于基本的筛选数据
条件2:递归查询起始条件
条件3:连接条件,其中用PRIOR表示上一条记录的结果作为本次查询的条件,比如:

CONNECT BY PRIOR id= parent_id;就是说上一条记录的id是本条记录的parent_id再进行查询(查子集);
CONNECT BY id= PRIOR parent_id;就是说上一条记录的parent_id是本条记录的id再进行查询(查父集);

实验场景

原始表数据:

对应关系图:

1.实验一:(查询自己及自己所有子集)

SELECT DISTINCT ID,level
        FROM org
        where DELETEFLAG =0 and ENABLEFLAG = 0
        START WITH id = 1
        CONNECT BY PRIOR ID=PARENTID

查询结果:

可以看出,查询出id为1的所有子集与他自己,查询过程:第一次查询为:id=1的;第二次查询为:PARENTID=第一次查询的id;第三次查询为:PARENTID=第二次查询的id

其中level可以看出树的层级

2.实验二:(进一步验证实验一)

SELECT DISTINCT ID,level
        FROM org
        where DELETEFLAG =0 and ENABLEFLAG = 0
        START WITH id = 10
        CONNECT BY PRIOR ID=PARENTID

查询结果:

查询出id为10的记录及其子集,并未查询其父集

3.实验三:(仅查询子集)

SELECT DISTINCT ID,level
        FROM org
        where DELETEFLAG =0 and ENABLEFLAG = 0
        START WITH parentid = 1
        CONNECT BY PRIOR ID=PARENTID

查询结果:

查询出id=1的子集,因为START WITH(初始条件)查询的是parentid = 1 的记录

4.实验四:(START WITH 后条件也可为多条件)

SELECT DISTINCT ID,level
        FROM org
        where DELETEFLAG =0 and ENABLEFLAG = 0
        START WITH (id=10 or id=2 or id=280)
        CONNECT BY PRIOR ID=PARENTID

查询结果:

发现查询结果与实验三一致

5.实验五:(查询自己及父集)

SELECT DISTINCT ID,level
        FROM org
        where DELETEFLAG =0 and ENABLEFLAG = 0
        START WITH id = 270
        CONNECT BY ID = PRIOR PARENTID

查询结果:

查询出自己及父集

6.实验六:(对查询结果 order by)

SELECT DISTINCT ID,level
        FROM org
        where DELETEFLAG =0 and ENABLEFLAG = 0
        START WITH id = 1
        CONNECT BY PRIOR ID=PARENTID
        order by level

查询结果:

证明,可以对查询后结果进行相关操作

7.实验七:(可以通过where条件筛选自己所需要的数据)

SELECT DISTINCT ID,level
        FROM org
        where DELETEFLAG =0 and ENABLEFLAG = 0
        and level!=3 
        START WITH id = 1
        CONNECT BY PRIOR ID=PARENTID

查询结果:

证明我们可以通过where 条件查询我们所需要的数据


结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2049946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

后端开发刷题 | 二叉树的前序遍历

描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 数据范围:二叉树的节点数量满足 1≤n≤100 ,二叉树节点的值满足 1≤val≤100,树的各节点的值各不相同 示例 1: 示例1 输入: {1,#,2,3} 返…

攻击实现摄像头、gvm、openvas安装

网络安全 前言1、kali 发现主机2、[mac地址](https://mac.bmcx.com/#google_vignette)查询3、openvas 安装openvas使用1、添加主机目标2、新建扫描任务3、开始扫描4、查看扫描信息。如果有cve那说明可用 前言 全国网络安全标准化技术委员会:https://www.tc260.org.…

【hot100篇-python刷题记录】【移动零】

R5-双指针 要用双指针来实现,想到一个办法,左右两边双指针,当左边指针找到0就和右指针交换值,要减少操作次数的话,就顺便判断一下右指针是否为0即可,最后肯定是双指针碰撞的。 不对,不能交换值…

普通人如何让AI应用于我们的办公?

最强小说推文——AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 当你学会用好AI,真的可以帮助你提高工作效率,把更多的时间放在摸鱼上! 想要AI应用…

Emacs25.x版本之重要特性及用法实例(一百五十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列…

探索Jinja2的神秘力量:Python模板引擎的魔法之旅

文章目录 探索Jinja2的神秘力量:Python模板引擎的魔法之旅1. 背景:为何选择Jinja2?2. 什么是Jinja2?3. 安装Jinja2:一键启程4. 基础用法:Jinja2的五大法宝5. 实战演练:Jinja2在场景中的应用6. 常…

xssnote

XSS漏洞: 文章目录 XSS漏洞:反射型:第一个例子: 实体,url,和js的Unicode编码img——重要标签浏览器解析机制:容纳字符实体:字符引用:RCDATA状态中的字符引用: URL解析:解…

前端css 动画过渡类型以及不同写法

动画过渡简写和复合写法 拆开写 transition-property: height background; 单独设置宽高或者all transition-duration: 2s; 运动时间 transition-timing-function: linear; 不同速度类型 transition-delay: 5s; 延迟时间 <!DOCTYPE h…

相似度计算方法-编辑距离 (Edit Distance)

定义 编辑距离&#xff08;Edit Distance&#xff09;&#xff0c;也称为Levenshtein距离&#xff0c;是一种衡量两个字符串相似度的方法。它定义为从一个字符串转换为另一个字符串所需的最少单字符编辑操作次数&#xff0c;这些操作包括插入、删除或替换一个字符。 计算方法 …

圣鑫堂胀气保健油:专为婴幼儿设计

圣鑫堂胀气保健油是一款专为婴幼儿设计的产品&#xff0c;旨在帮助宝宝缓解胀气不适。胀气是宝宝成长过程中常见的问题&#xff0c;由于婴儿的消化系统尚不成熟&#xff0c;容易出现胀气、腹痛等症状。圣鑫堂麻油通过纯天然的中草药成分&#xff0c;温和有效地帮助宝宝排出肠道…

解决电脑(Win10)内存不足问题:设置虚拟内存

文章目录 1. 虚拟内存1.1 介绍1.2 虚拟内存优点1.3 虚拟内存缺点 2. 为什么要修改虚拟内存&#xff1f;3. win10虚拟内存设置多少合适&#xff1f;4. Win10如何设置虚拟内存? 1. 虚拟内存 1.1 介绍 虚拟内存是一种计算机系统内存管理技术&#xff0c;它使得计算机能够使用比…

为什么精英都是时间控.md

作者&#xff1a;桦泽紫苑 一句话读书感想&#xff1a;高效利用时间&#xff0c;高效工作&#xff0c;幸福生活。 不在时间管理上下功夫&#xff0c;人真的会被工作“忙杀” 1.时间管理术四原则 1.1 以专注力为中心对时间分配 灵活运用大脑的黄金时间&#xff0c;将效率提高…

AI视频创作原理

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

Paimon实战 -- paimon系统表与审计监控

简介 paimon系统表按照元数据的分类&#xff0c;划分了如下10个系统表&#xff0c;通过系统表可以获取paimon表各维度的元数据和消费组信息。通过收集这些元信息&#xff0c;不仅可以排查问题使用&#xff0c;还可以构建统一的paimon元数据管理和消费组管理平台&#xff0c;比如…

远程调用-OpenFeign(二)

目录 1.OpenFeign最佳实践 1.1Feign继承方式 1.1.1创建一个Module 1.1.2引入依赖 1.1.3编写接口 1.1.4打Jar包 1.1.5服务提供方实现接口 1.1.6服务消费方继承接口 1.1.7测试 1.2Feign抽取方式 1.2.1创建一个Module 1.2.2引入依赖 1.2.3编写API 1.2.4打Jar包 1.2.…

mipi协议:Low Level Protocol(2)

前言&#xff1a; 今天继续给大家分享mipi协议中的Low Level Protocol部分内容翻译&#xff01; Packet Header Error Correction code for D-PHY Physical Layer Option: 数据标识符、字数计数和虚拟通道扩展字段的正确解释对于数据包结构至关重要。6位的数据包头错误校正码&…

日拱一卒(4)——leetcode学习记录:路径总和

一、任务&#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶…

Systools Outlook PST Recovery Outlook PST邮箱邮件数据修复工具下载

可正常激活使用&#xff0c;非常强大好用的PST邮箱邮件数据文件修复工具 下载地址(资源制作整理不易&#xff0c;下载使用需付费&#xff0c;不能接受请勿浪费时间下载) 链接&#xff1a;https://pan.baidu.com/s/1bfkVNrgdaVS2MkTnW19Zqw?pwdu2sj 提取码&#xff1a;u2sj

Java流程控制09:练习题:打印三角形

本节视频链接&#xff1a;https://www.bilibili.com/video/BV12J41137hu?p44&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p44&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 通过嵌套for循环可以实现打印三角形&#xff…

微信答题小程序产品研发-后端开发

在开发答题小程序的后端服务和数据库设计时&#xff0c;需要考虑API的设计、数据库模型的构建以及数据的安全性和一致性。 这里我采用了云开发&#xff0c;后端语言是Node&#xff0c;数据库是NoSql&#xff0c;然后我简单整理了各个功能模块的后端开发概要和数据库设计。 1. …