카테고리 없음

DB (MySQL) NULL 처리 내장함수(IFNULL, CASE)

martinooo 2022. 8. 3. 15:42
728x170

MySQL에서 Column의 값이 Null인 경우를 처리해주는 함수들은 IFNULL, CASE 등등이 있습니다.

저는 제가 실무에서 주로 사용하는 IFNULL, CASE만 알아보겠습니다.

 

IFNULL 

해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수이다. 

 

기본 구조

SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명; 

EX:

 

간단하게 설명하자면 sec_to_time은 초를 시간으로 바꿔주는 함수입니다. cast는 문자열혹은 숫자로 변환해주는 함수입니다. 즉 컬럼에 값이 null 이라면 '00:00:00' 을 주는 ifnull 사용 방법입니다! 

 

CASE

해당 Column 값을 조건식을 통해 True, False를 판단하여 조건에 맞게 Column값을 변환할 때 사용하는 함수이다

 

기본구조

CASE 
    WHEN 조건식1 THEN 식1
    WHEN 조건식2 THEN 식2
    ...
    ELSE 조건에 맞는경우가 없는 경우 실행할 식
END
// NAME Column의 IS NULL 조건이 True인 경우 "No name" 출력
// WHEN 조건들에 True인 조건이 없을 경우 ELSE 문을 통해 NAME Column의 값 출력
// END 이후 그 Column의 별칭을 NAME으로 지정
SELECT 
    CASE
        WHEN NAME IS NULL THEN "No name"
        ELSE NAME
    END as NAME
FROM ANIMAL_INS

case문은 마지막에 end를 닫는것이 중요합니다!

그리드형