본문 바로가기
데이터베이스(DB)/MySQL

[MySQL] NULL 처리 (IFNULL, CASE, COALESCE)

by 송기동 2024. 2. 1.
728x90

IFNULL

- 해당 컬럼의 값이 NULL을 반환할 때, 다른 값으로 대체/치환해주는 함수

SELECT IFNULL(컬럼명, "NULL일 경우 대체 값") FROM 테이블명;

#  IF

- IF, IS NULL 조건으로 IFNULL 구현 가능

SELECT IF(IS NULL(컬럼명, "NULL일 경우 대체 값", 컬럼명) AS 컬럼명;

CASE

- WHEN : 해당 컬럼값을 조건식을 통해 TRUE, FALSE 판단

- THEN : 조건식이 TRUE일 때 실행하는 식

- ELSE : 조건에 맞는 경우가 없는 경우 실행할 식

SELECT CASE 
    WHEN 조건식1 THEN 식1
    WHEN 조건식2 THEN 식2
    ...
    ELSE 조건에 맞는경우가 없는 경우 실행할 식
FROM 테이블명;

 


COALESCE

- 지정한 표현식들 중 NULL이 아닌 첫번째 값을 반환

- 표현식은 여러 항목 지정 가능

-- NULL 처리 상황
SELECT COALESCE(컬럼명1, 컬럼명1이 NULL인 경우 대체할 값)
FROM 테이블명;
 
 
-- 배타적 OR 관계 열
-- 컬럼1 ~ 4 중 NULL이 아닌 첫 번째 컬럼을 출력
SELECT COALESCE(컬럼명1, 컬럼명2, 컬럼명3, 컬럼명4)
FROM 테이블명;

 

728x90