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

Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: 
select ... from tablename start with 条件1 
connect by 条件2 
where 条件3; 
例: 
select * from table 
start with org_id = 'HBHqfWGWPy' 
connect by prior org_id = parent_id;  
在实际使用时遇到两个问题,一是如果把where子句放在start with...connect by...子句后时会提示:ORA-00933:SQl命令未完全结束。此时光标置于where处,如果将where放在 start with...connect by...子句前则可以正常执行。二是查询的数据中不能有自循环,即例子中的 org_id   和 parent_id  在同一条记录中不能相等,否则会提示:ORA-01436:用户数据中的connect by 循环。这两点需要注意。
以下是参考到的网络文档:
http://www.cnblogs.com/chen1388/archive/2010/09/25/1834827.html
http://zhidao.baidu.com/question/281792402.html
http://zhidao.baidu.com/question/281792402. html

oralce 递归查询语句相关推荐

  1. sql oracle 递归查询语句,深入sql oracle递归查询

    ☆ 获取数据库所有表名,表的所有列名 select name from sysobjects where xtype='u' select name from syscolumns where id= ...

  2. 【PostgreSQL】WITH RECURSIVE递归查询语句

    概述 PostgreSQL提供了WITH语句,允许你构造用于查询的辅助语句.这些语句通常称为公共表表达式(Common Table Expressions)cte.cte类似于只在查询执行期间存在的临 ...

  3. oracle plsql递归查询语句,oracle with 语句实现递归查询

    Oracle with 语句可以实现如同connect by 语句一样的序列: connect by用法 使用rownum实现1到10的序列.select rownum from dual conne ...

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

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

  5. sql oracle 递归查询语句,Oracle使用SQL语句进行递归查询

    id pid 问题描述: 1 0 2 0 3 1 4 1 5 2 6 2 7 3 8 4 9 5 取出id为1及其下属的所有的数据,结果为下 id pid 1 0 3 1 4 1 7 3 8 4 SQ ...

  6. SQL递归查询知多少

    最近工作中遇到了一个问题,需要根据保存的流程数据,构建流程图.数据库中保存的流程数据是树形结构的,表结构及数据如下图: 仔细观察表结构,会发现其树形结构的特点: FFIRSTNODE:标记是否为根节点 ...

  7. 关于Oracle数据库start whith 递归查询的另类认知

    众所周知,Oracle数据库的递归查询是 start whith connect by prior 方法,我们在查询上下级部门或组织架构的时候常常会用到它, 其主要的用法为 select 部门编号 f ...

  8. oracle树状结构递归,Oracle:递归查询(树形结构数据)

    Oracle树形结构数据-相关知识总结 Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT   *      FROM QIAN ...

  9. Oracle递归查询树形数据

    概述 实际生活有很多树形结构的数据,比如公司分为多个部门,部门下分为多个组,组下分为多个员工:省市县的归属:页面菜单栏等等. 如果想查询某个节点的父节点或者子节点,一般通过表自身连接完成,但如果该节点 ...

最新文章

  1. CSS 文字溢出显示省略号
  2. centos根分区扩容方法linux公社,Centos5给/根分区扩容
  3. NLTK找出最频繁的名词标记的程序(代码详细解释)
  4. GL ERROR - after deleteUnusedTextures() glError (0x502)
  5. Java,JavaFX的流畅设计风格滑块
  6. python tkinter控件_python tkinter 控件与布局 项目实战
  7. 理论 | 优雅的构建一个健壮的API接口
  8. SpringBoot实现JWT保护前后端分离RESTful API
  9. 移动光猫固件备份、刷机、改sn和mac等
  10. 如何在线生成gif表情?教你一键生成动图表情包
  11. Python学习_基础_29_面向对象编程之多态、鸭子类型
  12. 火车头采集器AI伪原创v.2.3
  13. 蛙蛙推荐:蛙蛙牌网页捕捉器
  14. html盒子两个背景图片,css怎么实现两张图片叠加在一起,css添加盒子背景图片
  15. 获取rowid的两种方法。
  16. java调用百度内容审核接口检查文本
  17. Word基础(三十五)题注的插入与删除
  18. 嗯呐..第一条博客....纪念石家庄培训的晚上....最简单的STL vector
  19. RV1109_RV1126 EVB板连接时List of devices attached
  20. OpenSUSE 12.3下的终端下拉软件

热门文章

  1. No valid crumb was included in the request 问题定位与解决
  2. 危险在线旅游,为何依然有人冒死买卖?
  3. 引用 JAVA面试题集
  4. Atmel at91rm9200的armlinux的bootloader启动代码分析
  5. LiveData的使用及详解
  6. [强化学习一]隐马尔可夫基本概念
  7. php公众号获取code,微信公众号获取code
  8. AP计算机从绝望到满分-----深圳中学张嘉轩如何说
  9. python时间序列峰值检测_Python中的峰值检测算法
  10. 如何区分when引导中的定语从句与时间状语从句