SQL*Plus, 논리합 연산자의 액세스 효율화 – 논리합 연산자의 이해: OR 연산자의 해소
SELECT ... FROM TAB1 x, TAB2 y, TAB3 z WHERE JOIN_CONDITIONS ... AND ( ( :선택 = '1' AND 구분 = '10' AND 인수일자 BETWEEN SYSDATE-30 AND SYSDATE AND 종목코드 = :종목 ) OR ( :선택 = '2' AND 구분 BETWEEN '20' AND '30 AND 인수일자 BETWEEN SYSDATE-60 AND SYSDATE AND 종목코드 = :종목 ) );
SELECT ... FROM TAB1 x, TAB2 y, TAB3 z WHERE JOIN_CONDITIONS ... AND 구분 IN (DECODE(:선택, '1', '10', '20') , DECODE(:선택, '2', '30')) AND 인수일자 BETWEEN SYSDATE-30*:선택 AND SYSDATE /* 1이면 30, 2이면 60 */ AND 종목코드 = :종목;
원문 출처
Encore – 대용량 데이터베이스