IFNULL은 단순하게 NULL을 대체할 값을 지정할 때 사용한다. NULL 값이 들어오면 대체 값을 반환하고, 그렇지 않으면 원래 값을 반환한다.
IFNULL(NULL 여부를 확인할 값, NULL인 경우 대체할 값)
SELECT customer_name,
IFNULL(phone_number, '없음') AS phone_number
FROM customers;
CASE는 조건에 따라 여러 값을 반환할 수 있는 조건문이다. NULL 값 처리뿐 아니라 복잡한 조건을 처리하는 데도 사용된다.
CASE
WHEN condition THEN result
[WHEN condition THEN result ...][ELSE default_result]
END
SELECT employee_name,
CASE
WHEN department_id IS NULL THEN '부서 미정'
ELSE '부서 존재'
END AS department_status
FROM employees;
COALESCE는 여러 표현식 중에서 첫 번째로 NULL이 아닌 값을 반환한다. 두 개 이상의 값 중 NULL 대체 우선순위를 지정할 수 있는 것이 특징이다.
COALESCE(expression1, expression2, ..., expressionN)
SELECT employee_name,
COALESCE(personal_phone, company_phone, '없음') AS contact_number
FROM employees;
함수 | 사용 목적 | 특징 및 장점 | 예제 상황 |
---|---|---|---|
IFNULL | NULL 값 대체 | 간단하고 직관적 | NULL을 단일 값으로 대체할 때 |
CASE | 조건에 따른 값 반환 | 복잡한 조건문 처리 가능 | 여러 조건을 다룰 때 |
COALESCE | 여러 값 중 NULL이 아닌 값 반환 | 우선순위 기반 처리, 여러 값 비교 가능 | 우선순위에 따라 대체할 때 |