Null 과 COALESCE()
COALESCE()
인수를 순서대로 평가하고 처음으로 NULL이 아닌 첫 번째 식의 현재 값을 반환한다.
구문
COALESCE ( expression [ ,...n ] )
인수
expression = 모든 형식의 식
반환형식
데이터 형식 우선 순위가 가장 높은 식의 데이터 형식을 반환한다.
모든 식에서 Null을 허용하지 않으면, 결과가 Null을 허용하지 않는 형식으로 처리됨.
예시)
COALESCE(NULL, NULL, 'third_value', 'fourth_value');
세 번째 값이 Null이 아닌 첫 값이기 때문에 세 번째 값을 반환한다.
연습
SELECT purchase_id
,amount
,coupon
,amount - coupon AS discount_amount
FROM webmarket.purchase_log_with_coupon;
discount_amount 에 Null값이 발생하는 연산요소 coupon 컬럼에 COALESCE 함수 사용
SELECT purchase_id
,amount
,coupon
,amount - COALESCE(coupon, 0) AS discount_amount
FROM webmarket.purchase_log_with_coupon;
이전에 배운 CASE 문으로 풀이한 쿼리
SELECT purchase_id
,amount
,coupon
,amount - CASE WHEN coupon IS NULL THEN 0 ELSE coupon END AS discount_amount
FROM webmarket.purchase_log_with_coupon;
< 참고 사이트>
COALESCE(Transact-SQL) - SQL Server
NULL로 계산되지 않는 첫 번째 식의 값을 반환하는 COALESCE의 Transact-SQL 참조입니다.
docs.microsoft.com
'Database > SQL' 카테고리의 다른 글
[PostgreSQL] Set Returning Functions / Series Generating Functions (시리즈 생성 함수) (0) | 2023.02.17 |
---|---|
[MySQL] WINDOW 함수 (0) | 2022.09.24 |
[MySQL] Workbench에서 파일 Import, 테이블 생성하기 (0) | 2022.08.17 |
[MySQL] Workbench 에서 ERD 그리기 (0) | 2022.08.10 |
[MySQL] 행 번호 출력하기 (0) | 2022.08.07 |