ORACLE 数据库的级联查询 一句sql搞定(例:部门多级,类型多级)

本文主要是介绍ORACLE 数据库的级联查询 一句sql搞定(例:部门多级,类型多级),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

oracle中,有时候会遇到批量操作多级部门下的数据或者是多级类别下文档,一句sql搞定想要查询的数据,并对其增删改操作,如下:


查询某条数据下是否有子节点:

select *          //要查询的字段
from table      //具有子接点id和父接点id的表
start with childid=id数据           //给定一个开始查询的id(字段名为子接点id,以及开始的id数据)
connect by prior childid= pid    //联接条件为子接点等于父接点 


查询某条数据上是否有父节点:


select *          //要查询的字段
from table      //具有子接点id和父接点id的表
start with childid=id数据          //给定一个开始查询的id(字段名为子接点id,以及开始的id数据)
connect by prior pid= childid   //联接条件为父接点等于子接点

实际举个例子,更好理解:

多级查询,数据结构如下:

abcde1e2

db数据字段如下:

id		name						unit_id		pid
-------------------------------------------------------
710		部门文档					527	
1262	规章制度					527			710
2331	日常管理					527			710
2349	设备管理					527			710
2350	电梯						527			2349
2351	综合办公楼电梯				527			2350
2352	电梯保养作业报告			527			2351
2353	电梯维修报告				527			2351
12837	港口(建筑)设施维修管理	527			710
12838	港口主要设施				527			12837
12839	港口附属设施				527			12837


在上表中查找id=2351 相关联的所有的父节点以及所有的子节点数据,级联sql如下:


select t.* from OA_DEPT_DOC_TYPE t start with id='2351' connect by prior pid = id
UNION
select t.* from OA_DEPT_DOC_TYPE t start with id='2351' connect by prior id = pid


查询的结果如下:

id		name				unit_id		pid
-----------------------------------------------
710		部门文档			527	
2349	设备管理			527			710
2350	电梯				527			2349
2351	综合办公楼电梯		527			2350
2352	电梯保养作业报告	527			2351
2353	电梯维修报告		527			2351

这篇关于ORACLE 数据库的级联查询 一句sql搞定(例:部门多级,类型多级)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/960643

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多