内容简介:connect by递归查询基本语法是:start with:表示以什么为根节点,不加限制可以写1=1,要以id为123的节点为根节点,就写为start with id =123connect by:connect by是必须的,start with有些情况是可以省略的,或者直接start with 1=1不加限制
一、基本语法
connect by递归查询基本语法是:
select 1 from 表格 start with ... connect by prior id = pId
start with:表示以什么为根节点,不加限制可以写1=1,要以id为123的节点为根节点,就写为start with id =123
connect by:connect by是必须的,start with有些情况是可以省略的,或者直接start with 1=1不加限制
prior:prior关键字可以放在等号的前面,也可以放在等号的后面,表示的意义是不一样的,比如 prior id = pid,就表示id就是这条记录的根节点了
二、业务场景
举个例子,写条SQL:
t_user(用户表),t_unit_info(单位表),意思是以单位编码为"15803"的单位为根节点,查找出其单位及其子单位的用户信息
select us.user_code, us.user_name
from t_user us
where exists (select 1
from t_unit_info uinfo where
us.unit_code = uinfo.unit_code
start with uinfo.unit_code = '15803'
connect by prior uinfo.unit_code = uinfo.para_unit_code)
然后将prior换一下位置,发现只能查出单位编码为"15803"对应的单位,不能查子级单位
select us.user_code, us.user_name
from t_user us
where exists (select 1
from t_unit_info uinfo where
us.unit_code = uinfo.unit_code
start with uinfo.unit_code = '15803'
connect by uinfo.unit_code = prior uinfo.para_unit_code)
Oracle 递归查询start with connect by prior的用法和知识不仅仅这些,本博客只是简单记录一下我所遇到的,比较详细的在 Linux 公社, https://www.linuxidc.com/Linux/2014-06/102687.htm
更多Oracle相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-03/157225.htm
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Coming of Age in Second Life
Tom Boellstorff / Princeton University Press / 2008-04-21 / USD 29.95
The gap between the virtual and the physical, and its effect on the ideas of personhood and relationships, is the most interesting aspect of Boellstorff's analysis... Boellstorff's portrayal of a virt......一起来看看 《Coming of Age in Second Life》 这本书的介绍吧!