ORACLE-递归查询(分层查询)
官方网址
Hierarchical Queries
样例
SELECT
C.PACKAGEID,
C.COMPONENT,
LEVEL,
CONNECT_BY_ISLEAF AS LEAF_FLAG,
CONNECT_BY_ROOT COMPONENT AS ROOT_ID,
CONNECT_BY_ISCYCLE AS CYCLE_FLAG,
SYS_CONNECT_BY_PATH(C.COMPONENT, '/') AS FILE_PATH
FROM XIR_TRD.TTRD_ACC_PACKAGE_COMPONENT C
WHERE LEVEL <= 99
START WITH PACKAGEID = '001'
CONNECT BY NOCYCLE PRIOR
COMPONENT = PACKAGEID
AND LEVEL <= 4
ORDER SIBLINGS BY COMPONENT
NOCYCLE
防止递归查询出现循环,仍可以返回查询结果;
如果不会出现循环,可不增加此字段,出现的话则考虑;
错误代码:ORA-01436: 用户数据中的 CONNECT BY 循环
伪列
伪列能作为字段被查询出来,能作为WHERE 语句中过滤字段,能作为ORDER BY 中使用;
伪列不能作为START WITH 字段使用,不能作为CONNECT BY 中字段使用,不能作为ORDER SIBLINGS BY字段使用
LEVEL
判断当前节点值,从根节点为1开始排序,可作为WHERE语句,不能作为START
CONNECT_BY_ISCYCLE
用以显示哪行出现了循环,0表述未存在循环,1表述存在循环
使用场景,必须使用CONNECT BY NOCYCLE,才能使用
CONNECT_BY_ISLEAF
用以显示该行是否为叶子节点,1表述为叶子节点
CONNECT_BY_ROOT
返回递归查询的各个根节点内容,例如字段为子字段,则返回2,7,9;字段为父字段,则返回 ROOT
SYS_CONNECT_BY_PATH
从start with开始的地方开始遍历,并记下其遍历到的节点,start with开始的地方被视为根节点,将遍历到的路径根据函数中的分隔符,组成一个新的字符串
排序
ORDER SIBLINGS BY
SIBLINGS关键字表述字段从根节点开始,直到该节点下排序完成,再进入下一节点排序,排序的字段不能采用伪列,例如LEVEL字段
ORACLE-递归查询(分层查询)相关推荐
- Oracle递归查询(查询当前记录所有父级或子级)
Oracle递归查询(查询当前记录所有父级或子级) 向上递归查询 所有上级 元数据: 1 2 3 4 SELECT * FROM ORGANIZE START WITH PARENT_ID = '14 ...
- oracle递归查询(查询条件ID下得所有子集)
一.CREATE TABLE TBL_TEST ( ID NUMBER, NAME VARCHAR2(100 BYTE), PID NUMBER ...
- oracle数据库分层,Oracle数据库的分层查询(一)
我们知道关系数据库不是以分层形式存储数据的,那么我们又该如何以分层方法获取数据呢?本文将为你介绍由Oracle提供的分层查询特性,告诉你分层查询的概念,并迎合你的需要构建一个分层查询. 使用分层查询时 ...
- Oracle递归查询,Oracle START WITH……CONNECT BY查询
Oracle递归查询,Oracle START WITH--CONNECT BY查询,Oracle树查询 ================================ ©Copyright 蕃薯耀 ...
- Oracle递归查询示例分析
Oracle递归查询示例分析 start with connect by 层次查询(Hierarchical Queries) 从顶级向下级查询 Select a.areaid,a.name,a.p ...
- Oracle递归查询的使用
开发中我们难免会遇到一类问题是维护的数据存在父子级的关系,比如树状结构的数据,省市区镇的行政区划数据,而做查询操作时往往会遇到递归查询的场景,下面便讲解在Oracle数据库中如何进行递归查询. Ora ...
- oracle递归查询实例
Oracle递归查询 创建表 建表语句: CREATE TABLE SC_DISTRICT (ID NUMBER(10) NOT NULL,PARENT_ID NUMBER(10),NAME VAR ...
- oracle获取所有子节点,oracle递归查询所有子节点
Q4:Oracle通过递归查询父子兄弟节点方法示例 前言 说到Oracle中的递归查询语法,我觉得有一些数据库基础的童鞋应该都知道,做项目的时候应该也会用到,下面本文就来介绍下关于Oracle通过递归 ...
- oracle树状结构递归,Oracle:递归查询(树形结构数据)
Oracle树形结构数据-相关知识总结 Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT * FROM QIAN ...
- Oracle递归查询上下级数据
Oracle递归查询 查询下级数据时 start with child=? - prior child=parent 查询上级数据时关系调换,用 start with child=? - prior ...
最新文章
- 美国北卡教堂山分校Jeff Dangl组植物微生物组博士后招聘(植物微生物互作领域第一高引学者)...
- 如何估算文章阅读时长?
- 学习Docker从小白到入门
- java调用arcgis rest服务器_c#调用arcgis地图rest服务示例详解(arcgis地图输出)
- python实现二叉树和它的七种遍历
- ML.NET 示例:对象检测
- MyBatis笔记——配置文件完成增删改查
- 大数据分析常用的方法有哪些
- Java核心技术点之反射
- java中return提醒不兼容的_JAVA报return为不兼容类型
- 《Android框架揭秘》读书笔记--在Java中调用C库函数
- 微信小程序 上传本地图片
- Homebrew国内加速
- 马化腾的马氏建议:“小步快跑 快速迭代”
- 外贸员需要知道的那些事儿
- 新人如何快速熟悉一个新项目
- 高德离线地图vue-amap的api文档(1):创建地图,撒点等等
- 【git】------git的基本命令 (此文章转载我的老师 Alley-巷子)
- UVA 10158 (记忆化搜索)
- 猎豹移动推出直播产品Live.me风靡美国
热门文章
- 什么叫做私有网络VPC?
- [Windows 10](Windows 10 解决开机小键盘灯不亮)
- 学籍(学生)信息管理系统
- 2021年中国乳制品行业发展现状分析,“双循环”助力行业发展「图」
- 服务器搭建网站公网ip,如何获取公网ip,自己搭建公网ip服务器的方法
- 我用Python爬取美食网站3032个菜谱并分析,没有我不会做的菜!
- heic格式怎么改成jpg?
- python正则表达式匹配数字和字母_只能输入数字和字母组合的正则表达式怎么写?...
- docker学习笔记(四)使用docker搭建环境
- windows搭建php运行环境,Windows手动搭建PHP运行环境