start with connect by prior用法

对于存储了树结构的表,通过 connect by {prior 列1=列2 | 列1=prior列2} start with prior遍历获取树形关系结构。

select ... from tablename where 条件3
start with 条件1
connect by  条件2条件1:根结点限定语句,可以取多个结点
条件2:连接条件,在字段名前加上prior,若prior随父节点的字段名放置,则往父节点方向遍历。若prior随子结点的字段名放置,则往子节点方向遍历。
条件3:过滤条件,对返回的所有记录进行筛选

例如:

设置表结构:

create table a_test
( parentid varchar2(10),subid    varchar2(10));insert into a_test values ( '1', '2' );
insert into a_test values ( '1', '3' );
insert into a_test values ( '2', '4' );
insert into a_test values ( '2', '5' );
insert into a_test values ( '3', '6' );
insert into a_test values ( '3', '7' );
insert into a_test values ( '5', '8' );
insert into a_test values ( '5', '9' );
insert into a_test values ( '7', '10' );
insert into a_test values ( '7', '11' );
insert into a_test values ( '10', '12' );
insert into a_test values ( '10', '13' );commit;select * from a_test;

向父节点遍历用法:

select parentid,subid,level -- 显示层级
from a_test
start with subid='7'
connect by subid = prior parentid  --向父节点遍历
order by level desc;

结果:

向子节点遍历用法:

select parentid,subid,level --显示层级
from a_test where subid>10
start with parentid='7'
connect by prior subid=parentid --向子节点遍历
order by level desc;

结果:

引用:

https://www.cnblogs.com/benbenduo/p/4588612.html

start with connect by prior用法相关推荐

  1. oracle中 sql语句:start with .. connect by prior.. 用法

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 我们经常会将一个比较复杂的目录树存储到一个表中.或者将一些部门存储到一个表中,而这些部门互相有隶属关 ...

  2. connect by prior

    1. connect by prior 介绍 语法 { CONNECT BY [ NOCYCLE ] condition [AND condition]... [ START WITH conditi ...

  3. Oracle中start with...connect by prior子句用法

    http://www.cnblogs.com/ZHF/archive/2008/09/10/1288101.html Oracle中start with...connect by prior子句用法 ...

  4. Oracle中查询树结构start with...connect by prior子句用法

    connect by 是结构化查询中用到的,其基本语法是:  select ... from tablename start with 条件1  connect by 条件2  where 条件3; ...

  5. oracle中start with ... connect by prior的用法(图文并茂,一看就懂!!)

    首先我们看张表 T_GOAT_COMPANY,这是一张 树形结构 的表,父节点是parent_guid 我们分析以下sql SELECT * FROM T_GOAT_COMPANY START WIT ...

  6. oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询

    今天发现在oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是: select . ...

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

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

  8. [Oracle SQL]最基本的connect by的用法

    最基本的connect by的用法: 需求1: 我需要下钻所有的树得到level和parent_name create table test_lvl1 (id number, parent_id nu ...

  9. Oracle start with connect by prior 使用总结

    目录 定义 举个栗子 第一种情况 第二种情况 第三种情况 第四种情况 总结 定义 start with: 指定起始节点的条件,可以放父级条件,也可以放子级条件 connect by: 连接条件 pri ...

最新文章

  1. IE的安全性设定增加“我的电脑”的安全性设定
  2. python调用钉钉API发送消息
  3. el replace 表达式_EL表达式运算符、常用函数详解
  4. drbd实现mysql地热备_Mysql+DRBD+Heartbeat 实现mysql高可用的双机热备(mysql+heartbeat篇)...
  5. Logistic回归和SVM的异同
  6. ajax正确返回数据,却进入了error分支
  7. 携程内部信:公司高管自愿降薪 梁建章和孙洁将0薪
  8. grpc通信原理_gRPC原理简析
  9. 初步学习Django-第五篇:ORM详解
  10. C#校验身份证(15位、18位)
  11. python中访问lmdb
  12. 同步IO和异步IO的区别
  13. 初级程序员软考重难点知识整理(持续更新)
  14. 设计检验轧辊的虚拟现实的集成软件
  15. vue 接口请求下载文件
  16. Android支付宝刷步数,蚂蚁森林刷步数小技巧(一键修改支付宝步数)
  17. 【茶知识】普洱茶四大茶区的区别特点
  18. 利润统计函数c语言,C语言计算内部回报率(或名内部收益率)(IRR)
  19. 基于简单MLP模型的加州房价预测
  20. pytorch.chunk

热门文章

  1. neuoj Blurred Pictures(小思维题
  2. 国产LIN收发器芯片SIT1028,PIN to PIN替代TJA1028
  3. 需求文档不明确,怎么处理?项目很紧急,也会写测试用例吗?
  4. 自制atmega328p-pu为主控的Arduino核心板
  5. java erc 2.0_如何使用Web3j库管理Java中的ERC20令牌
  6. 微信内置浏览器无法打开APP下载链接的解决方案
  7. 戴尔系统出厂恢复出厂设置_如何恢复出厂设置
  8. 微软同步框架入门之四--冲突(Conflict)检测和处理
  9. C语言中声明和定义详解
  10. 低功耗蓝牙模块智能门锁应用案例