NULL 값을 대체해야 할 때가 있음
예를 들어:
'이름 없음'을 표시하고 싶을 때 NULL이면 0으로 간주하고 싶을 때 NULL이 생긴 칼럼을 가독성 있게 출력하고 싶을 때이럴 때는 IFNULL() 함수나 CASE 문을 사용해서 NULL 값을 원하는 값으로 바꿀 수 있습니다.
IFNULL() 함수IFNULL(컬럼명, 대체값)
NULL이면 → 대체값으로 바꿔서 출력NULL이 아니면 → 원래 값 그대로 출력SELECT IFNULL(name, '이름 없음') AS name
FROM users;
name 컬럼이 NULL이면 '이름 없음'으로 출력되고IFNULL()은 MySQL 전용 함수입니다.NVL()COALESCE()를 대신 사용합니다.CASE 문 사용SELECT CASE WHEN 컬럼명 IS NULL THEN 'NULL일 때 대체할 값' ELSE 컬럼명 END AS 컬럼_별명 FROM 테이블명;
SELECT
CASE
WHEN name IS NULL THEN '이름 없음'
ELSE name
END AS name
FROM users;
IFNULL()과 같은 결과지만, CASE는 더 범용적입니다.IFNULL() vs CASE| 항목 | IFNULL() | CASE 문 |
|---|---|---|
| 가독성 | 간단하고 짧다 | 조금 더 길지만 유연함 |
| 기능 확장성 | 오직 NULL 체크만 가능 | 다양한 조건 분기 처리 가능 |
| DBMS 호환성 | MySQL 전용 | 대부분의 RDBMS에서 사용 가능 |
| 조건 다양성 | X | WHEN 조건1 THEN, ELSE 등 가능 |
SELECT IFNULL(age, 0) AS age FROM users;
SELECT IFNULL(join_date, '미입력') AS join_date FROM users;
또는
SELECT
CASE
WHEN age IS NULL THEN 0
ELSE age
END AS age
FROM users;
NULL 값은 출력 시 꼭 처리해줘야 사용자에게 의미 있는 데이터를 보여줄 수 있습니다.IFNULL() 사용CASE 문 사용실제 업무에서는 조회용 화면에서
NULL을 "미정", "없음", "0", "미입력" 등으로 바꾸는 경우가 많습니다. 상황에 맞는 처리 방법을 선택하세요!