2011. 11. 13. 21:25
[ORACLE]
Oracle에서 EXISTS사용 시 조건에 맞는 ROW만 출력 해준다.
IN은 실제로 존재하는 데이터를 모두 확인하지만
EXISTS 해당 ROW가 존재하는지만 체크하고 실행되지 않는다.
따라서 IN에 비하여 쿼리성능이 좋다.
SELECT
A.OPER_CD AS OPER_CD
,A.REST_CD AS REST_CD
,TO_CHAR(TO_DATE('20111113','YYYYMMDD')+1,'YYYYMMDD') AS DEAL_DAY
,A.SC_DEAL_CD AS SC_DEAL_CD
,A.SC_GB AS SC_GB
FROM REST_MST A
, SCDELL_MST B
WHERE A.REST_CD = 'G_10'
AND A.OPER_CD = 'AS0000'
AND A.REST_CD = B.REST_CD
AND A.SC_DEAL_CD = B.SC_DEAL_CD
AND A.SC_GB = B.SC_GB
AND A.DEAL_DAY = '20111113'
AND B.USE_GB = '1'
AND NOT EXISTS (SELECT 1
FROM REST_MST B
WHERE B.OPER_CD = A.OPER_CD
AND B.REST_CD = A.REST_CD
AND B.SC_GB = A.SC_GB
and B.SC_DEAL_CD = A.SC_DEAL_CD
AND B.DEAL_DAY = TO_CHAR(TO_DATE('20111113','YYYYMMDD')+1,'YYYYMMDD')
'ORACLE' 카테고리의 다른 글
| ORA-28002 : the password will expired within N days. 해결 방법 (0) | 2011.06.15 |
|---|---|
| EXP시 SYS.DBMS_DEFER_IMPORT_INTERNAL 식별자 오류 (0) | 2011.05.12 |
| CentOS 5.5 ORACLE 11g 설치 (0) | 2011.05.09 |
| 트리거 (0) | 2010.02.24 |



