oracle递归查询子节点

摘要:
递归的种子是connectby之后的“previor”,递归从这里开始。如果默认,则只能查询符合条件的起始行,不执行递归查询;放置在connectbyprior之后的字段是相关的,并指示查询方向。
 

通过子节点向根节点追朔.

select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid

通过根节点遍历子节点(不包含根节点).

select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid

通过根节点遍历子节点(包含根节点).

select * from persons.dept start with deptid=0 connect by prior deptid=paredeptid

可通过level 关键字查询所在层次.

select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid

备注:
start with ...connect by 的用法, start with 后面所跟的就是就是递归的种子。
递归的种子也就是递归开始的地方 connect by 后面的"prior" 如果缺省:则只能查询到符合条件的起始行,并不进行递归查询;
connect by prior 后面所放的字段是有关系的,它指明了查询的方向。

练习: 通过子节点获得顶节点
select FIRST_VALUE(deptid) OVER (ORDER BY LEVEL DESC ROWS UNBOUNDED PRECEDING) AS firstdeptid from persons.dept start with deptid=76 connect by prior paredeptid=deptid
表结构
DEPTID PAREDEPTID NAME
NUMBER NUMBER CHAR (40 Byte)
部门id 父部门id(所属部门id) 部门名称

免责声明:文章转载自《oracle递归查询子节点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇NodeJs接口token认证express框架passport实现方式Bearer认证MYSQL8.0+ 使用JDBC查询中文乱码的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

企业管理器(OEM)介绍: Grid Control 和 Database Control

Oracle 自10g 以后,企业管理器(Oracle Enterprise Manager:OEM)变成了网页形式。 OEM 分两种:Grid Control(网格控制) 和 Database Control(数据库控制)。  Grid Control 是具有完整功能的全企业Oracle 生态系统管理工具。  Database Control是可以只作...

十六、oracle 索引

一、管理索引-原理介绍索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低i/o次数,从而提高数据访问性能。索引有很多种我们主要介绍常用的几种:为什么添加了索引后,会加快查询速度呢? 二、创建索引1)、单列索引单列索引是基于单个列所建立的索引语法:create index 索引名 on 表名(列名);eg、create index nameInd...

[转]Oracle存储过程总结

原文地址:https://www.cnblogs.com/tingbogiu/p/5641000.html 1.存储过程结构 1.1 第一个存储过程  create or replace procedure proc1( para1 varchar2, para2 out varchar2, para3 in out varchar2 ) as...

Oracle11g配置st_geometry

环境: Windows Server 2008R2、Oracle11.2.0.4、ArcGIS10.1 1、创建企业级数据库 通过ArcMap或者ArcCatalog注册企业级数据库,注册方式可以参考ArcGIS的官方文档,这里不做重点说明。 创建过程如下可能看到如下信息,我们先进行跳过,点击完成即可,这样我们就可以在Oracle中管理空间数据了。 但...

[笔记]--Ubuntu安装Oracle Instant Client

一、安装Oracle Instant Client 1、下载Oracle client,在这里下载,需要下载3个RPM的包; 2、安装alien,和依赖包 $ sudo apt-get install alien $ sudo apt-get install libaio1 3、使用alien吧rpm包转换成deb包,并且安装: $ sudo alien...

Oracle SQLCODE/SQLERRM

Oracle内置函数SQLCODE和SQLERRM是特别用在OTHERS处理器中,分别用来返回Oracle的错误代码和错误消息。OTHERS处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的Oracle异常,所以在程序的最外层使用一个OTHERS处理器的话,将可以确保所有的错误都会被检测到。在一个内在的异常中,S...