1. 程式人生 > >Oracle 遞迴查詢:start with

Oracle 遞迴查詢:start with

 什麼時候用到start with ?

   (1) 一張表中存放有目錄樹的相關資料(子類id , 父類id )

   (2)但是想展示為父子型別的資料給前臺,或者列表(table)中,

   (3) 這個時候就可以考慮使用start with 了

 

 如何使用 --demo 附上,拷貝就能使用;

--建立表
create table demo2 (id_1 varchar2(10),id_2 varchar2(10),id_3 varchar2(10));

--向表中插入資料

insert into demo2 (ID_1, ID_2, ID_3) values ('A', 'A01', '0');

insert into demo2 (ID_1, ID_2, ID_3) values ('B', '', '0');

insert into demo2 (ID_1, ID_2, ID_3) values ('C', '', '0');

insert into demo2 (ID_1, ID_2, ID_3) values ('A01', '', 'A');

insert into demo2 (ID_1, ID_2, ID_3) values ('A0101', '', 'A01');

insert into demo2 (ID_1, ID_2, ID_3) values ('A010101', '', 'A0101');

insert into demo2 (ID_1, ID_2, ID_3) values ('B01', '', 'B');

insert into demo2 (ID_1, ID_2, ID_3) values ('B0101', '', 'B01');

insert into demo2 (ID_1, ID_2, ID_3) values ('B010101', '', 'B0101');

--遞迴查詢
SELECT * FROM demo2
  start with id_1 in ('A', 'B', 'C')
    connect by prior id_1 = id_3

 

最終查詢結果:

程式碼解釋: