oracle中的樹形查詢

來源:互聯網
上載者:User

基本文法

select...from tabename start with cond1 connect by  prior cond2 where cond2

注:cond1是根節點的限定語句

cond2是串連條件,其中prior表示上一條記錄,指該記錄的父親是上一條記錄

cond3是過濾條件

構造環境:不說你懂的

create table Family(
id integer,
parentid integer,
name varchar2(50)
)

insert into family values(0,0,'a')
insert into family values(1,0,'b')
insert into family values(2,1,'c')
insert into family values(3,1,'d')
insert into family values(4,1,'e')
insert into family values(5,1,'f')

例一:通過根節點遍曆子節點

--查詢父親等於1的所有子的資訊
select * from family start with parentid=1 connect by prior id=parentid

例二:通過子節點向根節點追溯

select * from family start with id=5 connect by prior parentid=id

註:如果報ORA-01436:使用者資料庫中的coonect by迴圈,則將第一條資料中的parentid改為null,否則loop迴圈找parentid就找不到了!

擴充:通過level 關鍵字查詢所在層次

select t.*,level from family t start with parentid=1 connect by prior id=parentid --表必須用別名

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.