oracle SQL递归的使用详解
例子:
复制代码 代码如下:
pid id
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
d d1
指定pid=a,选出
a b
a c
a e
b b1
b b2
c c1
e e1
e e3
SQL语句:select parent,child from test start with pid='a'
connect by prior id=pid
Oracle SQL递归查询语句:
1、表机构
复制代码 代码如下:
SQL> desc comm_org_subjection
Name
Null? Type
----------------------------------------- -------- ----------------------
ORG_SUBJECTION_ID
NOT NULL VARCHAR2(32) 子键
ORG_ID
NOT NULL VARCHAR2(32)
FATHER_ORG_ID
NOT NULL VARCHAR2(32) 父键
LOCKED_IF
NOT NULL VARCHAR2(1)
START_DATE
NOT NULL DATE
END_DATE
DATE
EDITION_NAMEPLATE
NUMBER(8)
CODE_AFFORD_IF
VARCHAR2(1)
CODE_AFFORD_ORG_ID
NOT NULL VARCHAR2(32)
CODING_SHOW_ID
NUMBER(8)
BSFLAG
VARCHAR2(1)
MODIFI_DATE
DATE
CREATOR_ID
VARCHAR2(32)
CREATE_DATE
DATE
CREATOR
VARCHAR2(35)
2、递归查找父结点 org_id为C6000000000001下的所有子结点:
复制代码 代码如下:
select * from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.org_subjection_id=a.father_org_id
3、递归查找子结点 org_id为C6000000000001下的所有父结点:
复制代码 代码如下:
select org_id from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.father_org_id=a.org_subjection_id
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
新手学oracle常见疑问2019-12-05
oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解2019-01-22
oracle case when 语句的用法详解2019-02-07
ORACLE性能优化之SQL语句优化2021-03-10
oracle中使用group by优化distinct2019-12-05
ORACLE 10g 安装教程[图文]2019-01-21
ORA-00947:Not enough values (没有足够的值)的深入分2019-01-22
Oracle显示游标的使用及游标for循环2019-03-01
Oracle 查看表空间的大小及使用情况sql语句2019-01-22
ORA-12514及ORA-28547错误解决方案2019-01-23