Oracle:递归树形结构查询功能
概要
树状结构通常由根节点、父节点(PID)、子节点(ID)和叶节点组成。
查询语法
SELECT [LEVEL],*
FROM table_name
START WITH 条件1
CONNECT BY PRIOR 条件2
WHERE 条件3
ORDER BY 排序字段说明:LEVEL—伪列,用于表示树的层次(用于查询结果所在层次,根节点的层次为1)
条件1—根节点的限定条件,当然也可以放宽权限,以获得多个根节点,也就是获取多个树(即:start with 后面的条件表示递归从哪里开始。)
条件2—连接条件,目的就是给出父子之间的关系是什么,根据这个关系进行递归查询(即:递归时前后两条数据是以条件2来建立联系的)
条件3—过滤条件,对所有返回的记录进行过滤。
排序字段—对所有返回记录进行排序
prior使用
prior的位置决定了递归时的具体关系或者说是决定了查询时的检索顺序,prior 字段1=字段2 可以理解为当前节点的字段1等于下一个节点的字段2。
两种写法:
connect by prior dept_id=par_dept_id 表示采用自上而下的搜索方式(先找父节点然后找子节点)
connect by dept_id=prior par_dept_id 表示采用自下而上的搜索方式(先找叶子节点然后找父节点)
举例
语法:
select
from 表名 t
where 过滤条件
start with t.PID=xx --开始根节点
connect by prior t.ID=t.PID
SELECT t.JGBHFROM GG_JGBH twhere SYBZ = 1START WITH t.SJJG = (select SJJG from GG_JGBH where JGBH = '0001')
CONNECT BY PRIOR t.JGBH = t.SJJG但上速查询的内容不包括“开始根节点”所对应的数据,此时我的解决方式是使用OR来关联
select E_ADDRESS.*, (select jgmc from gg_jgbh where jgbh = account) jgmcfrom E_ADDRESSwhere ACCOUNT = (select SJJG from GG_JGBH where JGBH = '0001')or ACCOUNT in(SELECT t.JGBHFROM GG_JGBH twhere SYBZ = 1START WITH t.SJJG = (select SJJG from GG_JGBH where JGBH = '0001')CONNECT BY PRIOR t.JGBH = t.SJJG)引用文章
http://www.dbs724.com/10240.html
https://blog.csdn.net/lwh_zfj/article/details/90180260
相关文章:
Oracle:递归树形结构查询功能
概要树状结构通常由根节点、父节点(PID)、子节点(ID)和叶节点组成。查询语法SELECT [LEVEL],* FROM table_name START WITH 条件1 CONNECT BY PRIOR 条件2 WHERE 条件3 ORDER BY 排序字段说明:LEVEL—伪列࿰…...
MongoDB数据库性能监控详解
目录一、MongoDB启动超慢1、启动日常卡住,根本不用为了截屏而快速操作,MongoDB启动真的超级慢~~2、启动MongoDB配置服务器,间歇性失败。3、查看MongoDB日志,分析“MongoDB启动慢”的原因。4、耗时“一小时”,MongoDB启…...
python不要再使用while死循环,使用定时器代替效果更佳!
在python开发的过程中,经常见到小伙伴直接使用while True的死循环sleep的方式来保存程序的一直运行。 这种方式虽然能达到效果,但是说不定什么时候就直接崩溃了。并且,在Linux环境中在检测到while True的未知进程就会直接干掉。 面对这样的…...
什么是接口测试?十年阿里测试人教你怎样做接口测试
一 什么是接口? 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。接口测试主要用于外部系统与系统之…...
1.10-1.12 Makefile
1. Makefile简介 举个栗子,如下为redis-5.0.10的项目目录,有很多的文件 有了Makefile文件,可以简单的make一下就可以对项目文件进行编译,最终生成可执行程序。 2. Makefile栗子1 首先,创建vim Makefile按照PPT里的格…...
Leetcode. 88合并两个有序数组
合并两个有序数组 文章目录归并思路二归并 核心思路: 依次比较,取较小值放入新数组中 i 遍历nums1 , j 遍历nums2 ,取较小值放入nums3中 那如果nums[i] 和nums[j]中相等,随便放一个到nums3 那如果nums[i] 和nums[j]中相…...
【数据库】数据库查询(进阶命令详解)
目录 1.聚合查询 1.1聚合函数 COUNT函数 SUM函数 AVG函数 MAX函数 MIN函数 1.2GROUP BY子句 1.3HAVING 2.联合查询 2.1内连接 2.2外连接 2.3自连接 2.4子查询 3.合并查询 写在前面: 文章截图均是每个代码显示的图。数据库对代码大小写不敏感&am…...
参数缺省和函数重载讲解
一路风雨兼程磨砺意志,三载苦乐同享铸就辉煌 目录 1.参数缺省的概念 2.参数缺省的用法 3.缺省参数分类 3.1.全缺省参数 3.2.半缺省参数 4.函数重载的概念 5.函数重载的用法 6.函数重载的原理 1.参数缺省的概念 一般情况下,函数调用时的实参个数应…...
关于召开2023第八届国际发酵培养基应用发展技术论坛的通知
生物发酵培养基是影响产业技术水平、环境友好程度的重要影响因素,为进一步实现生物发酵培养基的稳定可控、高效生产以及绿色安全,进一步推动生物技术的创新升级、绿色低碳循环生产,需要加强跨界联合,集中优势力量,突破…...
Java之深度优先(DFS)和广度优先(BFS)及相关题目
目录 一.深度优先遍历和广度优先遍历 1.深度优先遍历 2.广度优先遍历 二.图像渲染 1.题目描述 2.问题分析 3代码实现 1.广度优先遍历 2.深度优先遍历 三.岛屿的最大面积 1.题目描述 2.问题分析 3代码实现 1.广度优先遍历 2.深度优先遍历 四.岛屿的周长 1.题目描…...
【链表OJ题(四)】反转链表
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(四)1. 反转…...
java ArrayList源码分析(深度讲解)
ArrayList类的底层实现ArrayList类的断点调试空参构造的分步骤演示(重要)带参构造的分步骤演示一、前言大家好,本篇博文是对单列集合List的实现类ArrayList的内容补充。之前在List集合的万字详解篇,我们只是拿ArrayList演示了List…...
【网络编程】零基础到精通——NIO基础三大组件和ByteBuffer
一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 st…...
操作系统 - 1. 绪论
目录操作系统基本概念概念特征功能操作系统的分类与发展手工操作单道批处理系统多道批处理系统分时系统实时系统操作系统的运行环境CPU 运行模式中断和异常的处理系统调用程序的链接与装入程序运行时内存映像和地址空间操作系统的体系结构操作系统的引导操作系统基本概念 概念…...
详谈parameterType与resultType的用法
resultMap 表示查询结果集与java对象之间的一种关系,处理查询结果集,映射到java对象。 resultMap 是一种“查询结果集---Bean对象”属性名称映射关系,使用resultMap关系可将将查询结果集中的列一一映射到bean对象的各个属性&#…...
【Linux】进程概念、fork() 函数 (干货满满)
文章目录📕 前言📕 进程概念📕 Linux下查看进程的两种方法方法一方法二📕 pid() 、ppid() 函数📕 fork() 函数、父子进程初识再理解📕 fork做了什么📕 如何理解 fork 有两个返回值📕…...
【动态规划】最长上升子序列、最大子数组和题解及代码实现
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
Ajax进阶篇02---跨域与JSONP
前言❤️ 不管前方的路多么崎岖不平,只要走的方向正确,都比站在原地更接近幸福 ❤️Ajax进阶篇02---跨域与JSONP一、Ajax进阶篇02---跨域与JSONP(1)同源策略1.1 什么是同源1.2 什么是同源策略(2)跨域2.1 什…...
C 语言编程 — 线程池设计与实现
目录 文章目录目录线程池(Thread Pool)tiny-threadpool数据结构设计Task / JobTask / Job QueueWorker / ThreadThread Pool ManagerPublic APIsPrivate Functions运行示例线程池(Thread Pool) 线程池(Thread Pool&am…...
并发编程要点
Java并发编程中的三大特性分别是原子性、可见性和有序性,它们分别靠以下机制实现: 原子性:原子性指的是对于一个操作,要么全部执行,要么全部不执行。Java提供了一些原子性操作,例如AtomicInteger等…...
大型SaaS系统数据范围权限设计:从RBAC到动态数据域的实战解析
1. 项目概述:为什么数据范围权限是SaaS的“命门”在SaaS(软件即服务)领域摸爬滚打十几年,我见过太多项目因为早期忽略了数据范围权限这个“小”问题,最终导致架构重构、客户流失甚至数据泄露的“大”事故。一个面向企业…...
端侧AI与嵌入式系统融合:从模型轻量化到5G通信的产业化落地
1. 从展会看趋势:端侧AI与嵌入式系统的深度融合最近在德国纽伦堡举办的国际嵌入式展览会,可以说是全球嵌入式技术发展的风向标。作为从业者,我每年都会关注这个展会,因为它总能揭示未来几年工业和技术应用的核心走向。今年&#x…...
C语言学习笔记20260522—交换两个整数的值(地址传递)/打印1-100直接3倍数的数字/两个数最大公约数(最小公倍数)
一.知识点 函数需要改变实参时,必要要用地址传递,不能用值传递。当一个数%比自己大的数是,%的值就是自己本身。数辗转相除法(欧几里得算法)求两个数的最大公约数。两个数的最小公倍数为两个数的乘积除以最大公约数。 二…...
c# while循环 do while循环
while循环//while循环 //while(){}:当小括号条件成立 执行{}里面的东西,条件不成立的时候,循环就结束了while (true) //true 就是永远成立 一直执行{} {Console.WriteLine("死循环");break; //跳出死循环 只会执行一次 }while (tru…...
超厉害!AI写教材,低查重且内容连贯,快速产出专业教材!
整理教材知识点实在是一项“精细工作”,最大的挑战在于如何保持平衡与衔接!我们常常担忧会遗漏核心概念,或是难以掌握合适的难度梯度——小学教材常常写得过于复杂,导致学生难以理解;而高中教材则可能显得过于简单&…...
SteamDeck双系统引导终极方案:如何用智能化管家告别启动烦恼
SteamDeck双系统引导终极方案:如何用智能化管家告别启动烦恼 【免费下载链接】SteamDeck_rEFInd Simple rEFInd install script for the Steam Deck (with GUI customization) 项目地址: https://gitcode.com/gh_mirrors/st/SteamDeck_rEFInd 你是否曾经在St…...
利用Taotoken用量看板与成本管理功能精细化控制AI支出
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken用量看板与成本管理功能精细化控制AI支出 作为团队的技术负责人,在引入大模型能力支持多个研发项目时&…...
爱波克 Apoquel(奥拉替尼)作用与上市,全球首个犬用 JAK 抑制剂
奥拉替尼是全球首个获批用于兽医的 JAK 抑制剂,2013 年 5 月美国 FDA 获批,2023 年 6 月推出咀嚼片剂型,提升用药依从性Zoetis。其作用机制为选择性抑制 JAK1,阻断 IL-4、IL-13、IL-31 等关键致痒与促炎细胞因子信号,从…...
4.7 Spark SQL函数分类与应用
本次实战涵盖了三大核心内容:内置函数、自定义函数(UDF)和开窗函数。 内置函数是数据处理的基础,包括字符串、日期、数学、聚合等10大类,可通过DataFrame API或SQL语句两种方式调用,满足多样化的数据转换需…...
Claude Code、Cursor、Codex到底是什么?法律人AI开发工具全解析
一、AI IDE是什么?从代码编辑器到智能助理AI IDE AI 集成开发环境(IDE)。传统IDE如VS Code、IntelliJ,开发者需要手动编写每一行代码、查阅文档、编写测试用例。AI IDE则让开发者用自然语言下达指令,AI理解整个项目结…...
