[MySQL] NULL 값 처리하기

·2024년 7월 23일
0

DB

목록 보기
1/1
post-thumbnail

SELECT 쿼리의 결괏값이 NULL 일 때, 다른 값으로 치환을 하고 싶은 경우가 있을 것이다.

이럴 때 사용할 수 있는 함수를 알아보자.

IFNULL

SELECT IFNULL(column_name, '대체값') FROM table_name;

column_name이 NULL이 아니면 column_name 값을 반환하고, 아니라면 대체값을 반환한다.

두 개의 인자만 받으며 데이터 타입이 다를 경우에 자동 형변환이 발생할 수 있으므로 주의해야 한다.

COALESCE

SELECT COALESCE(column1, column2, column3, ... , '기본값') FROM table_name;

왼쪽부터 오른쪽으로 column을 확인하고, NULL이 아닌 첫 번째 표현식 값을 반환한다.

여러 값을 받아야 할 때 유용하다.

CASE

CASE 문은 조건부 로직을 구현할 때 사용하므로, NULL 처리뿐만 아니라 여러 곳에서 사용할 수 있다.

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    [ELSE default_result]
END

WHEN 절을 확인하고, value가 참이라면 THEN 절의 결과를 반환한다. 모든 조건이 거짓이면 ELSE 절의 결과를 반환하는데, ELSE가 없으면 NULL을 반환한다.

CASE 문은 어떻게 사용되는지 예시를 보자.

SELECT name,
		CASE
				WHEN email IS NULL THEN 'Unverified'
				ELSE email
		END AS email,
FROM member;

email 열 값을 확인하고, 만약 NULL이면 Unverified라는 문자열을 반환한다.

profile
개발블로그👩🏻‍💻

0개의 댓글