start with connect by prior用法
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用法相关推荐
- oracle中 sql语句:start with .. connect by prior.. 用法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 我们经常会将一个比较复杂的目录树存储到一个表中.或者将一些部门存储到一个表中,而这些部门互相有隶属关 ...
- connect by prior
1. connect by prior 介绍 语法 { CONNECT BY [ NOCYCLE ] condition [AND condition]... [ START WITH conditi ...
- Oracle中start with...connect by prior子句用法
http://www.cnblogs.com/ZHF/archive/2008/09/10/1288101.html Oracle中start with...connect by prior子句用法 ...
- Oracle中查询树结构start with...connect by prior子句用法
connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; ...
- oracle中start with ... connect by prior的用法(图文并茂,一看就懂!!)
首先我们看张表 T_GOAT_COMPANY,这是一张 树形结构 的表,父节点是parent_guid 我们分析以下sql SELECT * FROM T_GOAT_COMPANY START WIT ...
- oracle中用START WITH...CONNECT BY PRIOR子句实现递归查询
今天发现在oracle中的select语句可以用START WITH...CONNECT BY PRIOR子句实现递归查询,connect by 是结构化查询中用到的,其基本语法是: select . ...
- Oracle中start with xx connect by prior 语句解析
Oracle中start with xx connect by prior 语句解析 Oracle这种的start with语句主要对B型树的数据进行递归查询.可以指定数据树上的任一节点,然后查找 ...
- [Oracle SQL]最基本的connect by的用法
最基本的connect by的用法: 需求1: 我需要下钻所有的树得到level和parent_name create table test_lvl1 (id number, parent_id nu ...
- Oracle start with connect by prior 使用总结
目录 定义 举个栗子 第一种情况 第二种情况 第三种情况 第四种情况 总结 定义 start with: 指定起始节点的条件,可以放父级条件,也可以放子级条件 connect by: 连接条件 pri ...
最新文章
- IE的安全性设定增加“我的电脑”的安全性设定
- python调用钉钉API发送消息
- el replace 表达式_EL表达式运算符、常用函数详解
- drbd实现mysql地热备_Mysql+DRBD+Heartbeat 实现mysql高可用的双机热备(mysql+heartbeat篇)...
- Logistic回归和SVM的异同
- ajax正确返回数据,却进入了error分支
- 携程内部信:公司高管自愿降薪 梁建章和孙洁将0薪
- grpc通信原理_gRPC原理简析
- 初步学习Django-第五篇:ORM详解
- C#校验身份证(15位、18位)
- python中访问lmdb
- 同步IO和异步IO的区别
- 初级程序员软考重难点知识整理(持续更新)
- 设计检验轧辊的虚拟现实的集成软件
- vue 接口请求下载文件
- Android支付宝刷步数,蚂蚁森林刷步数小技巧(一键修改支付宝步数)
- 【茶知识】普洱茶四大茶区的区别特点
- 利润统计函数c语言,C语言计算内部回报率(或名内部收益率)(IRR)
- 基于简单MLP模型的加州房价预测
- pytorch.chunk