MySQL NULL 처리 (IFNULL, CASE, COALESCE)

MySQL NULL 처리 (IFNULL, CASE, COALESCE)
muaga's avatar
May 31, 2024
MySQL NULL 처리 (IFNULL, CASE, COALESCE)
 

1. IFNULL


IFNULL은 두 개의 인수를 취한다. 첫 번째 인수가 NULL이라면, 두 번째 인수를 반환한다.
IFNULL(column, value) // IFNULL(column명, ‘null일 경우 대체 값’) IFNULL(column1, column2) // IFNULL(column명, ‘null일 경우 대체 값’)
SELECT IFNULL(column, 0) AS result FROM table_name; ➡️ columnNULL일 경우, 0을 반환 SELECT IFNULL(column1, column2) AS result FROM table_name; ➡️ columnNULL일 경우, column2을 반환
 

2. CASE


CASE는 여러 조건을 검사하고, 조건에 따라 다른 값을 반환할 수 있게 한다.
  • NULL값을 처리하는 데 사용할 수도 있다.
CASE WHEN condition1 THEN result1 // WHEN column IS NULL THEN value WHEN condition2 THEN result2 ... ELSE default_result END
SELECT CASE WHEN column IS NULL THEN 0 ELSE column_name END AS result FROM table_name; ➡️ columnNULL일 경우, 0을 반환하고 그렇지 않으면 column_name을 반환한다.
 

3. COALESCE


COALESCE는 여러 인수를 취하고, 그 중 첫 번째로 NULL이 아닌 값을 반환한다.
COALESCE(column1, column2, ..., columnN) // 괄호 안 columnNULL이 아닌 column을 반환
SELECT COALESCE(column_name, 0) AS result FROM table_name; ➡️ column_name = NULL 👉 0 ➡️ column_name ≠ NULL 👉 column_name
 

셋의 차이점


IFNULL
CASE
COALESCE
두 개의 인수
여러 조건
여러 인수
첫 번째 인수가 NULL 👉 두 번째 인수 반환
더 복잡한 논리 구현
인수 중 첫 번째로 NULL이 아닌 값을 반환
간단한 NULL 처리에 사용
특정 조건을 기반으로 다양한 값 반환할 때 사용
여러 대체 값을 순차적으로 검사할 때 사용
 
Share article

muaga's Hub