oracle SQL递归的使用详解

时间:2021-05-02

oracle数据库中如果需要使用SQL递归语句,应该怎么写呢?下面就为您介绍一个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
NameNull? Type
----------------------------------------- -------- ----------------------
ORG_SUBJECTION_IDNOT NULL VARCHAR2(32) 子键
ORG_IDNOT NULL VARCHAR2(32)
FATHER_ORG_IDNOT NULL VARCHAR2(32) 父键
LOCKED_IFNOT NULL VARCHAR2(1)
START_DATENOT NULL DATE
END_DATEDATE
EDITION_NAMEPLATENUMBER(8)
CODE_AFFORD_IFVARCHAR2(1)
CODE_AFFORD_ORG_IDNOT NULL VARCHAR2(32)
CODING_SHOW_IDNUMBER(8)
BSFLAGVARCHAR2(1)
MODIFI_DATEDATE
CREATOR_IDVARCHAR2(32)
CREATE_DATEDATE
CREATORVARCHAR2(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


声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章