开发者社区> 技术小牛人> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

start with .. connect by prior ..

简介:
+关注继续查看

oracle中递归查询用start with ... connect by prior... 字句


语法:

select 字段 from 表名 where 条件 start with 条件 connect by 条件


假设有一张表结构如下:

create table test(id number, name varchar2(40), p_id number);


--查询id为10的所有子节点

--我的理解:先找到id=10的记录,然后找谁的p_id=10,如此找下去,是由根节点找叶节点

select * from test start with id = 10 connect by prior id = p_id;

<==>

select * from test start with id = 10 connect by p_id = prior id;


--查询id为10的所有父节点

--我的理解:先找到id=10的记录,然后找这条记录的p_id,再找p_id的p_id,如此找下去,直到找到根节点,是由叶节点找根节点

select * from test start with id = 10 connect by prior p_id = id;

<==>

select * from test start with id = 10 connect by id = prior p_id;


说明:

   1.prior如果省略,不进行深层递归查询

   2.prior如果在等号左边,表示从根节点向叶子节点检索,也叫做向下查询

   3.prior如果在等号右边,表示从叶子节点向根节点检索,也叫做向上查询


-------------------------------------------------------------------------------------------

补充:

    prior可以在操作符的任意一边,它的作用就是指定父节点。

wKioL1TNhCfwRr2SAALwQRFw2a4215.jpg

wKiom1TNgwrA5TWeAAHwBwcmd2k795.jpg


本文转自    手不要乱摸      51CTO博客,原文链接:http://blog.51cto.com/5880861/1397468


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
javascript学习笔记(4)--with和for(in)对象语句
1、   我们在使用对象的属性的时候总是需要对象的名字加上.来引用对象的属性  ,为了方便我们可以用with来简化代码 。 function  A() { this.x =1 ; this.y=2 ; this.z=3 ; }  var  obj=new  A() ; 我们以往对x y z的调用需要   obj.x  obj.y obj.z  这样很麻烦 但是通过with语句可以简化操作  with(obj) { x ; y; z;  } 这样就简化了代码  。
472 0
java 数组的拷贝 对象数组的拷贝 System.arraycopy函数
  /*java 数组的操作   System类的arraycopy静态函数用于数组拷贝   数组是不能越界的 对象数组的复制实际上是复制的引用的拷贝  也就是对象的地址  */ class Point{ int x; int y; Point(int x,int y) {  this.
598 0
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
兼容:IE7以上版本及FF;(腾讯的WebQQ3.0好像也不兼容IE6,其实这样挺好的)   上图片素材先:   背景图片: 浮云图片:    ←——————————这里是有图片D~  全选就能看见了(因为背景是白的,云也是白的嘛~)……   CSS代码:         ...
995 0
#yyds干货盘点# javascript学习系列(7):数组中的concat方法
#yyds干货盘点# javascript学习系列(7):数组中的concat方法
0 0
AtCoder Beginner Contest 216 D - Pair of Balls (思维建图 拓扑排序判断有向图是否有环)
AtCoder Beginner Contest 216 D - Pair of Balls (思维建图 拓扑排序判断有向图是否有环)
0 0
ORACLE:根据父id查询所有子孙数据,或者根据子id查询所有父数据(start with connect by prior)
一、需求: 我们在开发中经常遇到一种数据库表的设计:一个表中包含父子信息数据,也就是常说的树形数据. —> 最常见的例子就是省市区一体表,就是通过id、pid、level来进行控制,从而一张表来存储数据.我们进行拿数据的时候,不用再连表拿取,直接通过(start with connect by prior)直接便利就会得到数据.
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
HBase Current State and Future : Community View
立即下载
MongoShake -- Multi Active-Active and Cross-Region Disaster Recoverable MongoDB Service
立即下载
低代码开发师(初级)实战教程
立即下载