oracle的start with connect by prior是根据条件递归查询"树",分为四种使用情况:

第一种:start with 子节点ID='...' connect by prior 子节点ID = 父节点ID

1

select * from mdm_organization o start with o.org_code='10000008' connect by prior o.org_code=o.org_parent_code

按照条件org_code='10000008',对'10000008'(包括自己)及其子节点进行递归查询,结果如下

查询结果自己所有的后代节点(包括自己)。

第二种:start with 子节点ID='...' connect by 子节点ID = prior 父节点ID

1

select * from mdm_organization o start with o.org_code='10000008' connect by o.org_code=prior o.org_parent_code

按照条件org_code='10000008',对'10000008'(包括自己)及其父节点进行递归查询,结果如下

查询结果自己所有的前代节点(包括自己)。

第三种:start with 父节点ID='...' connect by prior 子节点ID = 父节点ID

1

select * from mdm_organization o start with o.org_parent_code='10000008' connect by prior o.org_code=o.org_parent_code

按照条件org_parent_code='10000008',对'10000008'(不包括自己)子节点进行递归查询,结果如下

查询结果自己所有的后代节点(不包括自己)。

第四种:start with 父节点ID='...' connect by 子节点ID = prior 父节点ID

1

select * from mdm_organization o start with o.org_parent_code='10000008' connect by o.org_code = prior o.org_parent_code

按照条件org_parent_code='10000008',对'10000008'(包括自己)的第一代孩子们及其父节点进行递归查询,结果如下

查询结果自己的第一代后节点和所有的前代节点(包括自己)。

如果有where 条件,如下

select * from mdm_organization o where 条件 start with o.org_parent_code='10000008' connect by o.org_code = prior o.org_parent_code

执行顺序为先执行start with connect by prior,然后再按照where条件进行过滤。

标签:code,递归,10000008,查询,start,connect,Oracle,org,节点

来源: https://blog.51cto.com/11147669/2458053

oracle 递归查询次数,Oracle递归查询的几种方法相关推荐

  1. 在Oracle中执行动态SQL的几种方法------转载

    在Oracle中执行动态SQL的几种方法 在一般的sql操作中,sql语句基本上都是固定的,如: SELECT t.empno,t.ename  FROM scott.emp t WHERE t.de ...

  2. oracle事务数统计,【学习笔记】Oracle数据库收集统计信息的两种方法介绍案例

    天萃荷净 分享一篇关于Oracle数据库收集统计信息的办法,Oracle DBMS_STATS与Oracle analyze使用方法案例 今天群里面讨论DBMS_STATS和analyze,这里进行了 ...

  3. Oracle 实现行转列的几种方法

    Oracle 实现行转列的几种方法 表数据 1 使用 decode 与聚合函数实现 2 使用 case when 与聚合函数实现 3 使用 pivot 函数 表数据 with students as( ...

  4. oracle数据库导入dmp文件,两种方法

    开始的准备工作:前面的步骤都一样 一: 创建表空间: create tablespace root datafile 'D:\Oracle\dataSpace\root.dbf' (你自己的存放空间) ...

  5. Oracle中新建数据表的两种方法

    首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...

  6. oracle 10046详解,ORACLE TRACE 10046事件常见的几种方法

    下面是10046事件的几个等级分别表示什么意思 Level 0 Tracing is disabled. This is the same as setting SQL_TRACE = FALSE. ...

  7. oracle表转为分区表,Oracle普通表转分区表的几种方法

    将普通表转换成分区表有4种方法: 1)  Export/import method 2)  Insert with a subquery method 3)  Partition exchange m ...

  8. oracle 解锁 账户_oracle用户解锁三种方法

    ORA-28000: the account is locked- 的解决办法 2009-11-11 18:51 ORA-28000: the account is locked 第一步:使用 PL/ ...

  9. oracle和mysql的备份有几种方法_Oracle 数据库的备份与恢復都有哪几种方法?

    oracle数据库的备份与恢复 ---- 当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(包括机器故障.介质故障.误操作等),数据库有时也可能遭到破坏,这时如何尽快 ...

最新文章

  1. Logstash(二)input、codec插件详解
  2. 《LeetCode力扣练习》第461题 汉明距离 Java
  3. 为什么站点实现了https加密之后还是能看到相关数据
  4. Docker精华问答 | 数据库为什么不适合放在 Docker 中运行?
  5. c语言tmplink,为了便于阅读,偿试把BLHeli的汇编源程序改成C语言格式
  6. linux系统怎样写单片机程序,单片机知识是Linux驱动开发的基础之一以及如何学单片机...
  7. linux NAND驱动之四:6410上的NAND读写流程
  8. android 耗电量分析,使用能耗性能剖析器检查耗电量
  9. from StyleFrame import StyleFrame, Styler ModuleNotFoundError: No module named ‘StyleFrame‘
  10. 【学习笔记】噬菌体学
  11. Windows子系统WSL
  12. Cadence PSpice中更改Cursor控制的曲线及打印图形Cursor信息的方法
  13. eplan p8详细安装步骤文库_EPLAN P8 2.1.6 安装指南
  14. 移动端多页面APP(MPA)开发体验
  15. matlab反插值,matlab反距离权重插值
  16. Ubuntu 安装MySQL 并设置其他主机可访问
  17. 10W+字C语言硬核总结(二),值得阅读收藏!
  18. java 获取下一年_JAVA获取下一年,下个月,下一天;月份为何以0开始?
  19. 从委内瑞拉大范围停电一事来看美国的攻击手段
  20. 和平精英显示模拟服务器已满,和平精英模拟器注册达到上限? 模拟器注册上限完美解决攻略...

热门文章

  1. 魔兽初级上手指南快捷键
  2. java 迭代器的优缺点_java迭代器和for循环优劣详解
  3. python自动检测wifi是否能联网,断开wifi重新连接wifi的代码。
  4. 职场人必用的MindManager免费思维导图软件使用教程。
  5. 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题
  6. display:list-item
  7. 西工大机考《 市场营销学》大作业网考
  8. Goby漏洞更新 | 斐讯 FIR302B management.cgi 远程命令执行漏洞 (CVE-2022-27373)
  9. layui如何刷新iframe页面
  10. 资金方进退两难:借呗、度小满等助贷巨头不良猛涨,头部平台有钱也不敢放