Oracle - start with connect by 樹操做
create table tprior ( parentid number(10), subid number(10) ); insert into tprior values ( 1, 2 ); insert into tprior values ( 1, 3 ); insert into tprior values ( 2, 4 ); insert into tprior values ( 2, 5 ); insert into tprior values ( 3, 6 ); insert into tprior values ( 3, 7 ); insert into tprior values ( 5, 8 ); insert into tprior values ( 5, 9 ); insert into tprior values ( 7, 10 ); insert into tprior values ( 7, 11 ); insert into tprior values ( 10, 12 ); insert into tprior values ( 10, 13 ); commit;
select * from tprior;
spa
select parentid, subid, level from tprior start with subid = 7 connect by subid = prior parentid order by level;
select parentid, subid, level from tprior start with subid = 7 connect by prior subid = parentid order by level;
select parentid, subid, level from tprior start with parentid = 7 connect by subid = prior parentid order by level;
select parentid, subid, level from tprior start with parentid = 7 connect by prior subid = parentid order by level;
select parentid, subid, level from tprior where parentid > 3 start with subid = 12 connect by subid = prior parentid order by level;