oracle 用EXISTS替代IN

在許多基於基礎表的查詢中,爲了知足一個條件,每每須要對另外一個表進行聯接.在這種狀況下, 使用EXISTS(或NOT EXISTS)一般將提升查詢的效率.ide

 低效:it

SELECT *class

FROM EMP (基礎表)效率

WHERE EMPNO > 0基礎

AND DEPTNO IN (SELECT DEPTNO查詢

FROM DEPTdi

WHERE LOC = ‘MELB’)view

    高效:vi

SELECT *co

FROM EMP (基礎表)

WHERE EMPNO > 0

AND EXISTS (SELECT ‘X’

FROM DEPT

WHERE DEPT.DEPTNO = EMP.DEPTNO

AND LOC = ‘MELB’)

( 相對來講,用NOT EXISTS替換NOT IN 將更顯著地提升效率)

相關文章
相關標籤/搜索