為解決oracle中自連接查詢不適合操作大表的情況,采用connect by 方式實現。oracle中可以用START WITH...CONNECT BY PRIOR子句實現遞歸查詢,connect by 在結構化查詢中應用。
基本語法:
select ... from
where
connect by
start with
connect by 和start with的先後順序可以調換
其中:
Conditional1是過濾條件,用於對返回的所有記錄進行過濾。
Conditional2是連接條件
Conditional3是過濾條件,用於對返回的所有記錄進行過濾。
select * From emp; 其中empno(員工編號),mgr(經理編號)
可以對其中員工和經理對應關系整理如下:其中下一級節點的經理號是上一級的員工號
查詢語句:
SQL> select level 級數 ,connect_by_isleaf 是否葉子 , ename 員工姓名 ,mgr 經理號 from emp connect by prior empno=mgr start with mgr is null;