转自:http://blog.sina.com.cn/s/blog_50fa47c70100h5d1.html

有这样的一个需求:

顺义区的 region_code 是 110113 ,parent_code 是110000 ,亦即 顺义的父记录是北京。

Oracle SQL 语句   start with ...connect by  [prior]:

start with 后面所跟的就是就是递归的种子,也就是递归开始的地方.

connect by 后面的"prior" 如果缺省:则只能查询到符合条件的起始行,并不进行递归查询;connect by prior 后面所放的字段是有关系的,它指明了查询的方向

select Column1,Column2,from tableName

start with Column 1='1234'

connect by prior Column1 =Column2

根据 谁(子节点,父节点) 语句最后的 connect by prior Column1 =Column2 Column2就写成谁

也就是 : 如果根据 子节点查询,Column2 就要写成 子节点代表的 字段

如果根据 父节点查询,Column2 就要写成 父节点代表的 字段

1. 通过 子记录查询父记录

现在要求根据顺义的 region_code 查询出其上级所有的记录。也就是根据 子节点的记录,查询父节点记录。

select region_code,region_desc,parent_code  from V_REGION_CODE 
start with region_code ='110113'
connect by prior parent_code=region_code

解释: 如果是通过 子节点查询父节点记录,则 connect by prior 要写成 ParentColumn = ChildColumn

2.通过父记录查询子记录

现在要求根据北京的region_code 查询所有北京的子记录。也就是根据父节点查询 子节点。

select region_code,region_desc ,parent_code  from V_REGION_CODE 
start with region_code ='110000'
connect by prior  region_code=parent_code

解释: 如果通过 父节点 查询子节点记录, 则connect by prior 要写成 chilidColumn = praentColumn

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

Oracle 中递归查询相关推荐

  1. oracle 中递归查询的使用

    在之前说过,在项目中经常会接触树结构的页面:所以经常后台经常会接触树结构相关的数据.经常会写关于查询某个树节点的所有子节点的方法,若使用java的for循环或者递归不但效率低又好性能.所以这回就可以用 ...

  2. oracle中的递归查询

    一.oracle中的递归查询上下级部门关系 采用的语法为 start with ... connect by ..... = prior .... 我们部门表中存在这样几条记录 id parent_i ...

  3. sql oracle 递归查询语句,oracle递归函数 oracle中SQL递归查询

    关于oracle递归调用的自定义函数如何结束 比如存储过程a中有b,b中含a.用return结束判断,执行还是锁表,怎么解决 关于oracle递归调用的自定义函数如何结束 可以调用. C语言最基本的模 ...

  4. ORACLE中使用递归查询

    在数据库查询中常常会碰到要查询树形结构的数据,需要用一个字段的数据当做下一条记录的父节点继续查询,如果在不知道有多少级节点的情况下一次次手写SQL查询会很繁琐而没有效率,这时可以使用 oracle中的 ...

  5. Oracle中start with xx connect by prior 语句解析

    Oracle中start with xx connect by prior 语句解析 ​ Oracle这种的start with语句主要对B型树的数据进行递归查询.可以指定数据树上的任一节点,然后查找 ...

  6. 关于oracle的递归查询

    关于oracle的递归查询 oracle的递归查询只能在查询单表时有效:若有表关联时,则无效,比如: SELECT u.*   FROM t_user u, t_duty d, t_organizat ...

  7. Oracle数据库递归查询

    Oracle数据库递归查询 最近在做一个树状编码管理系统,其中用到了oracle的树状递归查询(关键字:SELECT - WHERE- START WITH - CONNECT BY PRIOR) 以 ...

  8. 1.oracle中的exists 和not exists 用法:

    1.oracle中的exists 和not exists 用法: exists (sql 返回结果集为真) not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1 A1 ...

  9. oracle循环递归查询,Oracle 递归查询的用法

    Oracle数据库中常要处理一些父子关系的记录,在OLTP中要用得多一些,oracle提供了递归查询可以很容易的满足这个需求,oracle的递归查询通过start with [condition] c ...

最新文章

  1. 一句话评论设计模式六大原则--转
  2. java.io.IOException: No space left on device
  3. linux命令上常用命令
  4. 更新 Ubuntu 系统,避免报错「校验和不符」
  5. “vector”: 不是“std”的成员_libcxx 的 std::function 源码分析
  6. 开场 Live,分享点干货——「深入了解 Node.js 包与模块机制」
  7. 17道因为太难而被禁用的Google面试题
  8. 西门子数控面板图解_学好四要点让你迅速成为数控机床“操作高手”
  9. Linux系统启动流程图
  10. 旧电脑装什么系统最快_旧电脑装什么系统好 老旧电脑适合装什么操作系统
  11. 在method方法被调用之后,仅打印出a=100,b=200,请写出method方法的代码
  12. 易优cms 后台登录报:验证码错误 Eyoucms快速入门
  13. 初学Shader关于旗帜飘扬的一个简单shader的实现
  14. python实现企业微信定时发送文本消息
  15. HDU 6058 Kanade's sum 逆序求第k大
  16. 5G智慧灯杆网关的行业应用与前景
  17. C++ Reference: Standard C++ Library reference: C Library: cstdio: clearerr
  18. 【大学物理学】静电场
  19. (root) Additional property nginx is not allowed
  20. unity 阻挡射线未生效_Unity社区在E3生效

热门文章

  1. 2020年拼多多数据分析一面
  2. calcite连接mysql_calcite简单入门
  3. Algorithm:数学建模大赛(CUMCM/NPMCM)之全国大学生数学建模竞赛历年考察知识点统计可视化分析、论文评阅标准参考、国内外CUMCM数学建模类参考文献论文集合之详细攻略
  4. CWnd::WindowProc的理解
  5. ssh开启图形界面_分享|3 个 Linux 上的 SSH 图形界面工具
  6. 角频率、圆周频率、归一化频率的区别
  7. Jenkins - 札记 - 无法连接仓库:Command “git ls-remote -h -- http://git.govmade.cn/shanghai/demo.git HEAD“...
  8. 2023辽宁安全员(B证)模拟考试试卷
  9. 微信小程序开发入门篇(二)
  10. python手机壁纸_利用Appium Python测试爱壁纸的登录和设置壁纸