Database/SQL
[MySQL] Null과 COALESCE() 함수
츔
2022. 8. 17. 19:22
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