SELECT 매장코드
, 매출일자
, 고객번호
, CASE WHEN CARD_YN = 'Y' THEN '신용카드' ELSE '기타' END
FROM TB_PAYMENT_KIND
WHERE 1=1
AND TRNS_DT BETWEEN '20190101' AND '20201031'
;
위 쿼리와 같이 작성하는 경우가 많을 듯 합니다.
그런데 해당 테이블의 데이터가 몇 백만건 또는 그 이상인 경우에서는 조회 시간이 오래 걸리는 경우가 발생 가능하며, 성능 향상을 위해 많은 고민을 하신 경우가 있으실 겁니다.
위와 같이 속도로 고민하셨던 분들은 복잡하게 생각하지 마시고 아래와 같이 UNION ALL을 이용해 보세요.
해당 쿼리는 이해를 위해 작성된 예제입니다.
SELECT 매장코드
, 매출일자
, 고객번호
, '신용카드'
FROM TB_PAYMENT_KIND
WHERE 1=1
AND TRNS_DT BETWEEN '20190101' AND '20201031'
AND CARD_YN = 'Y'
UNION ALL
SELECT 매장코드
, 매출일자
, 고객번호
, '기타'
FROM TB_PAYMENT_KIND
WHERE 1=1
AND TRNS_DT BETWEEN '20190101' AND '20201031'
AND CARD_YN = 'N'
;
'ORACLE' 카테고리의 다른 글
[ORACLE]테이블 백업 예제 (0) | 2020.11.03 |
---|---|
[ORACLE]테이블 컬럼 추가/수정/삭제/컬럼변경 예제 (0) | 2020.11.02 |
[ORACLE]GROUP BY 예제 (0) | 2020.11.02 |
[ORACLE]MERGE INTO 예제 (0) | 2020.11.02 |
[ORACLE]Function 예제 (0) | 2020.11.02 |