241125 TIL - MySQL (IFNULL, CASE, COALESCE)

J_log·2024년 11월 25일
0

1. IFNULL

IFNULL은 단순하게 NULL을 대체할 값을 지정할 때 사용한다. NULL 값이 들어오면 대체 값을 반환하고, 그렇지 않으면 원래 값을 반환한다.

IFNULL(NULL 여부를 확인할 값, NULL인 경우 대체할 값)

SELECT customer_name, 
       IFNULL(phone_number, '없음') AS phone_number
FROM customers;

2. CASE

CASE는 조건에 따라 여러 값을 반환할 수 있는 조건문이다. NULL 값 처리뿐 아니라 복잡한 조건을 처리하는 데도 사용된다.

CASE
WHEN condition THEN result
[WHEN condition THEN result ...][ELSE default_result]
END

  • condition : 조건문
  • result : 조건이 참일 경우 반환할 값
  • default_result : 모든 조건이 거짓을 경우 반환할 값
SELECT employee_name,
       CASE 
           WHEN department_id IS NULL THEN '부서 미정'
           ELSE '부서 존재'
       END AS department_status
FROM employees;

3. COALESCE

COALESCE는 여러 표현식 중에서 첫 번째로 NULL이 아닌 값을 반환한다. 두 개 이상의 값 중 NULL 대체 우선순위를 지정할 수 있는 것이 특징이다.

COALESCE(expression1, expression2, ..., expressionN)

  • expression1, expression2, ..., expressionN: NULL 여부를 확인할 여러 값
SELECT employee_name,
       COALESCE(personal_phone, company_phone, '없음') AS contact_number
FROM employees;

비교 및 요약

함수사용 목적특징 및 장점예제 상황
IFNULLNULL 값 대체간단하고 직관적NULL을 단일 값으로 대체할 때
CASE조건에 따른 값 반환복잡한 조건문 처리 가능여러 조건을 다룰 때
COALESCE여러 값 중 NULL이 아닌 값 반환우선순위 기반 처리, 여러 값 비교 가능우선순위에 따라 대체할 때

0개의 댓글