oracle中的遞迴查詢語句
阿新 • • 發佈:2020-12-04
建立一個demo表 department:
create table department ( code VARCHAR2(10) not null, name VARCHAR2(50), pcode VARCHAR2(10), mgrname VARCHAR2(50) ); insert into department values('ROOT','頂級部門', null, 'R大大'); insert into department values('A','A部門', 'ROOT', 'A老大'); insert into department values('A01','A01部門', 'A', 'A01老大'); insert into department values('A02','A02部門', 'A', 'A02老大'); insert into department values('B','B部門', 'ROOT', 'B老大'); insert into department values('B01','B01部門', 'B', 'B01老大'); insert into department values('B02','B02部門', 'B', 'B02老大');
1.遞迴查詢某個部門的所有子級部門:
select t.* from department t start with t.code='ROOT' connect by prior t.code = t.pcode ;
查詢結果:
2.遞迴查詢某個部門的所有上級部門:
select t.* from department t start with t.code='B02' connect by t.code = prior t.pcode ;
查詢結果: