Oracle高级函数篇之递归查询start with connect by prior简单用法

路飞:“ 把原来CSDN的博客转移到博客园咯!”

前段时间,自己负责的任务中刚好涉及到了组织关系的业务需求,自己用了oracle递归查询。下面简单来举个例子。在工作中我们经常会遇到有一定组织关系层次的关系。比如某个省下有多少市,每个市下又有多个区。再或者公司组织部门相互的隶属关系。这时我们就可能会用到 start with connect by prior 递归查询了

用法举例

1. 基本sql语法

select  ...   from  + 表
  start with       +    条件1
connect by  prior    +    条件2
  where             +     条件3

条件说明:
  条件1:是根节点的限定语句
  条件2:连接条件。prior表示上一条信息。比如connect by prior  org_id =     parent_id 就是说上一条记录的org_id是本条 记录的parent_id,即本记录的父亲是上一条记录。
  条件3:过滤条件

2. 用法举例:

表名:CITY_TREE,表结构如下:

表数据:

=======================================================================

(1)从根节点向下查询:

select A.*from CITY_TREE A
STARTWITH A.CITY_ID =‘1‘
CONNECTBYPRIOR A.CITY_ID = A.CITY_PID;

结果如下图:

(2)从根节1点向上查

select A.* from CITY_TREE A 
START WITH A.CITY_ID = ‘1‘
CONNECT BY A.CITY_ID = PRIOR A.CITY_PID;

结果如下图:

原文地址:https://www.cnblogs.com/topfish/p/9573542.html

时间: 2024-10-04 18:53:52

Oracle高级函数篇之递归查询start with connect by prior简单用法的相关文章

Oracle高级函数

http://www.cnblogs.com/chen1388/archive/2010/07/06/1771919.html decode函数: decode(aa, 1, 'xs', 2, 'ps', 'ms') 相当于 (case aa when 1 then 'xs' when 2 then 'ps' else 'ms' end) http://www.cnblogs.com/chen1388/archive/2010/07/06/1771930.html trunc函数,截断函数 fo

Oracle高级函数1------ Oracle 树操作(select…start with…connect by…prior)

oracle树查询的最重要的就是select…start with…connect by…prior语法了.依托于该语法,我们可以将一个表形结构的以树的顺序列出来.在下面列述了oracle中树型查询的常用查询方式以及经常使用的与树查询相关的oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等. 1.准备测试表和测试数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

JavaScript系列:高级函数篇

前言: 本篇主要是介绍 JavaScript使用函数的高级方法,函数是JavaSCript中最有趣的部分,利用Function特性可以编写出很多非常有意思的代码,本篇主要包括:函数回调,高阶函数以及函数柯里化. 1.   函数回调 对于异步编程JavaScript API如SetTimeout或者JQuery的$.ajax又或者越来越火的Node.js编程,在事件循环上都是非阻塞的,意思就是,当你使用异步非阻塞API的使用,调用在回调函数执行之前立即返回,而这些回调在不久之后执行. 1 setT

关于Oracle、SqlServer 的sql递归查询

递归查询所有子节点 oracle SELECT * FROM hrmdepartment              START WITH  id=22              CONNECT BY PRIOR id=supdepid sqlserver with result_table as               (                  select a.id,a.lastname,a.managerid from hrmresource a where id=321 

oracle中 connect by 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; 简单说来是将一个树状结构存储在一张表里

oracle中 connect by prior 递归算法

http://blog.163.com/xxciof/blog/static/7978132720095193113752/ oracle中 connect by prior 递归算法 Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from ta

Oracle学习之start with...connect by子句的用法

Oracle中start with…connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: 1 select … from tablename 2 start with 条件1 3 connect by 条件2 4 where 条件3; 例: 1 select * from table 2 start with org_id = ‘HBHqfWGWPy’ 3 connect by prior org_id = parent_id; 简单说来是将一个树

oracle中 connect by prior 递归算法 -- 理解

http://blog.163.com/xxciof/blog/static/7978132720095193113752/ oracle中 connect by prior 递归算法 Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from ta

oracle高级SQL(三)--递归查询

oracle中有connect by子句.是用于层次查询.就是递归查询. 其中语法如下: SELECT ... FROM <TABLENAME> WHERE <CONDITIONAL-1> START WITH <CONDITIONAL-2> CONNECT BY <CONDITIONAL-3> 注解: 1. CONDITIONAL-1条件:即SQL中的过滤条件, 2.CONDITIONAL-2条件:是根结点的限定语句:是从哪个条件开始. 3. CONDIT