oracle数据库中如果需要使用SQL递归语句,应该怎么写呢?下面就为您介绍一个oracle中使用SQL递归语句的例子,供您参考。
例子:
<div class=”codetitle”><a style=”CURSOR: pointer” data=”52589″ class=”copybut” id=”copybut52589″ onclick=”doCopy(‘code52589’)”> 代码如下:<div class=”codebody” id=”code52589″>
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递归查询语句:
<FONT style=”COLOR: #ff0000″>1、表机构
<div class=”codetitle”><a style=”CURSOR: pointer” data=”44303″ class=”copybut” id=”copybut44303″ onclick=”doCopy(‘code44303’)”> 代码如下:<div class=”codebody” id=”code44303″>
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)
<FONT style=”COLOR: #ff0000″>2、递归查找父结点 org_id为C6000000000001下的所有子结点:
<div class=”codetitle”><a style=”CURSOR: pointer” data=”22276″ class=”copybut” id=”copybut22276″ onclick=”doCopy(‘code22276’)”> 代码如下:<div class=”codebody” id=”code22276″>
select * from comm_org_subjection a
start with a.org_id=’C6000000000001′
connect by prior a.org_subjection_id=a.father_org_id
<FONT style=”COLOR: #ff0000″>3、递归查找子结点 org_id为C6000000000001下的所有父结点:
<div class=”codetitle”><a style=”CURSOR: pointer” data=”61797″ class=”copybut” id=”copybut61797″ onclick=”doCopy(‘code61797’)”> 代码如下:<div class=”codebody” id=”code61797″>
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