SQL: COALESCE 사용예시, NULLIF과 IFNULL의 차이점
2024. 9. 30. 22:54ㆍ전처리/SQL
01 COALESCE
SELECT COALESCE(NULL, NULL, 'Hello', 'World') AS result;
-- 결과: 'Hello'
1. COALESCE 함수는 인자로 받은 여러 값들 중에서 첫 번째로 NULL이 아닌 값을 반환한다.
2. 여러 개의 인자를 받을 수 있다.
02 NULLIF, IFNULL
SELECT NULLIF(10, 10) AS result1, NULLIF(10, 20) AS result2;
-- 결과: result1은 NULL, result2는 10
1. NULLIF 함수는 두 인자가 같으면 NULL을 반환하고, 그렇지 않으면 첫 번째 인자를 반환한다.
2. 주로 특정 조건에서 값을 NULL로 만들고 싶을 때 사용한다.
SELECT IFNULL(NULL, 'Default Value') AS result1, IFNULL('Hello', 'Default Value') AS result2;
-- 결과: result1은 'Default Value', result2는 'Hello'
1. IFNULL 함수는 두 개의 인자를 받아 첫 번째 인자가 NULL이면 두 번째 인자를 반환한다.
2. 그렇지 않으면 첫 번째 인자를 반환한다.
03 차이점 요약
1. NULLIF: 두 인자가 같으면 NULL을 반환하고, 다르면 첫 번째 인자를 반환.
2. IFNULL: 첫 번째 인자가 NULL이면 두 번째 인자를 반환하고, 그렇지 않으면 첫 번째 인자를 반환.
04 시작 기간과 종료 기간이 주어졌을 때 특정 구매일 대치하기
문제URL: Average Selling Price
더보기
-- 전체 코드
SELECT
US.product_id,
ROUND(
SUM(US.units * PR.price) / SUM(US.units),
2
) AS average_price
FROM
UnitsSold AS US
LEFT JOIN
Prices AS PR
ON
US.product_id = PR.product_id
AND US.purchase_date BETWEEN PR.start_date AND PR.end_date
GROUP BY
US.product_id;
AND US.purchase_date BETWEEN PR.start_date AND PR.end_date
1. JOIN 조건에 AND로 해당 구문을 추가해서 구매일에 해당하는 가격을 매치했다.
2. LEFT JOIN 했을 때 왼쪽 테이블을 기준으로 NULL값이 정해짐을 이용했다.
3. 두 번째 테이블을 기준으로 LEFT JOIN해서 NULL값을 출력시키지 않았다.
'전처리 > SQL' 카테고리의 다른 글
SQL: 특정 컬럼에 필터링 된 조건이 필요할 때 (0) | 2024.10.14 |
---|---|
SQL: COUNT()와 SUM()의 작동 방식을 이해한다. (0) | 2024.09.22 |
SQL: DATEDIFF, SUBDATE 활용 방법의 차이 (feat. join문제) (1) | 2024.09.12 |
SQL: SELF JOIN 활용하는 문제 풀이 (output보며 이해) (0) | 2024.09.12 |
SQL: CROSS JOIN과 LEFT JOIN 동시에 활용하기 (0) | 2024.09.05 |