Oracle中層次查詢語(yǔ)法:
select ...
[level | connect_by_root |connect_by_isleaf |connect_by_iscycle ]
from table_name
[where]
connect by { prior col1=col2 | col1=prior col2 }
[start with]
[order [siblings] by];
connect by :說(shuō)明每行數(shù)據(jù)將是按層次順序檢索,并規(guī)定將表中的數(shù)據(jù)連入樹(shù)形結(jié)構(gòu)的關(guān)系中。prior運(yùn)算符必須放置在連接關(guān)系的兩列中某一個(gè)的前面,對(duì)于子節(jié)點(diǎn)間的父子關(guān)系,prior運(yùn)算符所在的一側(cè)為父節(jié)點(diǎn),另一側(cè)的為子節(jié)點(diǎn),從而確定查找樹(shù)形結(jié)構(gòu)的順序是自頂向下還是自底向上。
start with:用于標(biāo)識(shí)哪個(gè)節(jié)點(diǎn)作為查找樹(shù)形結(jié)構(gòu)的根節(jié)點(diǎn),層次查詢需要確定起始點(diǎn),通過(guò)start with,后加條件。start with將確定將哪行作為root,如果不指定start with,則每行都當(dāng)做root,然后查找其后代。start with后可以跟子查詢,如果又where條件,則會(huì)截?cái)鄬哟沃袧M足相關(guān)條件的節(jié)點(diǎn),但不影響整個(gè)層次查詢。
level:是一個(gè)偽列,代表當(dāng)前這個(gè)節(jié)點(diǎn)所在的層級(jí),對(duì)于根節(jié)點(diǎn),level返回1,通過(guò)這個(gè)偽列結(jié)合其他oracle函數(shù)進(jìn)行數(shù)據(jù)的格式化顯示。
connect_by_root:connect_by_root必須和某個(gè)字段搭配使用,目的是獲取根節(jié)點(diǎn)記錄的字段信息。
connect_by_isleaf:判斷當(dāng)前結(jié)點(diǎn)是否為葉子節(jié)點(diǎn),0表示非葉子節(jié)點(diǎn),1表示是葉子節(jié)點(diǎn)。
connect_by_cycle:可以檢查是否在樹(shù)形查詢的過(guò)程中構(gòu)成循環(huán),這個(gè)偽列只是在connect_by_cycle方式下有效。
order siblings by:定義返回時(shí)同意父節(jié)點(diǎn)下的各個(gè)兄弟節(jié)點(diǎn)之間的順序。
例子:
--樹(shù)形結(jié)構(gòu)表emp; select * from emp; EMP_ID EMP_NAME UP_EMP_ID --------- --------------- --------------- 1 USER1 0 2 USER2 1 3 USER3 1 4 USER4 2 5 USER5 2 6 USER6 3 --從根節(jié)點(diǎn)emp_id=1開(kāi)始,自頂向下查詢出根節(jié)點(diǎn)的所有子節(jié)點(diǎn) select emp_id,emp_name,up_emp_id,level from emp start with emp_id=1 connect by prior emp_id=up_emp_id order siblings by emp_id; EMP_ID EMP_NAME UP_EMP_ID LEVEL --------- --------------- --------------- -------- 1 USER1 0 1 2 USER2 1 2 4 USER4 2 3 5 USER5 2 3 3 USER3 1 2 6 USER6 3 3 --從emp_id=6,自底向上查詢emp_id=6的所有父節(jié)點(diǎn) select emp_id,emp_name,up_emp_id from emp start with emp_id=6 connect by emp_id = prior up_emp_id order by emp_id; EMP_ID EMP_NAME UP_EMP_ID --------- --------------- --------------- 1 USER1 0 3 USER3 1 6 USER6 3另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享題目:oracle層次查詢語(yǔ)句-創(chuàng)新互聯(lián)
文章地址:http://www.chinadenli.net/article38/dcihsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、靜態(tài)網(wǎng)站、做網(wǎng)站、ChatGPT、品牌網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容