oracle SQL遞歸的使用詳解
更新時(shí)間:2013年05月30日 10:10:05 作者:
本篇文章是對oracle SQL遞歸的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
oracle數(shù)據(jù)庫中如果需要使用SQL遞歸語句,應(yīng)該怎么寫呢?下面就為您介紹一個(gè)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、表機(jī)構(gòu)
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、遞歸查找父結(jié)點(diǎn) org_id為C6000000000001下的所有子結(jié)點(diǎn):
select * from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.org_subjection_id=a.father_org_id
3、遞歸查找子結(jié)點(diǎn) org_id為C6000000000001下的所有父結(jié)點(diǎn):
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
例子:
復(fù)制代碼 代碼如下:
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、表機(jī)構(gòu)
復(fù)制代碼 代碼如下:
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、遞歸查找父結(jié)點(diǎn) org_id為C6000000000001下的所有子結(jié)點(diǎn):
復(fù)制代碼 代碼如下:
select * from comm_org_subjection a
start with a.org_id='C6000000000001'
connect by prior a.org_subjection_id=a.father_org_id
3、遞歸查找子結(jié)點(diǎn) org_id為C6000000000001下的所有父結(jié)點(diǎn):
復(fù)制代碼 代碼如下:
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
相關(guān)文章
oracle不能使用EM怎么辦 oracle11g如何正確安裝配置EM
這篇文章主要為大家詳細(xì)介紹了oracle不能使用EM的解決方法,oracle11g如何正確安裝配置EM,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Oracle導(dǎo)入導(dǎo)出數(shù)據(jù)的幾種方式
今天小編就為大家分享一篇關(guān)于Oracle導(dǎo)入導(dǎo)出數(shù)據(jù)的幾種方式,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
PL/SQL 日期時(shí)間類型函數(shù)及運(yùn)算
PL/SQL 日期時(shí)間類型函數(shù)及運(yùn)算...2007-03-03
Oracle SQL Developer腳本輸出中文顯示亂碼的解決方法
我們在測試Oracle Select AI(自然語言查詢數(shù)據(jù)庫)時(shí),發(fā)現(xiàn)Run Statement中文顯示正常,而Run Script中文顯示亂碼,所以本文給大家介紹了Oracle SQL Developer腳本輸出中文顯示亂碼的解決方法,需要的朋友可以參考下2024-05-05
Oracle?ORA-00257:?歸檔程序錯(cuò)誤解決辦法
今天發(fā)現(xiàn)oracle數(shù)據(jù)庫連不上,報(bào)錯(cuò):ORA-00257:歸檔程序錯(cuò)誤,在釋放之前僅限于內(nèi)部連接?馬上聯(lián)想到可能是空間滿了,一看磁盤目錄果然,這篇文章主要給大家介紹了關(guān)于Oracle?ORA-00257:歸檔程序錯(cuò)誤的解決辦法,需要的朋友可以參考下2024-04-04
淺談Oracle 11g 發(fā)行版2 新安裝后關(guān)于登錄的一些基本操作
oracle 11g的兩個(gè)不同版本。11g剛發(fā)行時(shí),是11g第一版,簡稱11.1,現(xiàn)在有個(gè)11g第二版,在功能上有了更多的改進(jìn),簡稱11.2。本文給大家介紹Oracle 11g 發(fā)行版2 新安裝后關(guān)于登錄的一些基本操作,需要的朋友可以參考下2015-10-10

