본문 바로가기
공부/DATABASE

[MySQL]논리 관련 함수, NULL처리 정리(IFNULL,IF,NULLIF,COALESCE,CASE문)

by happyeuni 2023. 4. 3.

IF, IFNULL, NULLIF

IF(논리식, 참일 때 반환 값1, 거짓일 때 반환 값2) : 논리식이 참이면 값1 리턴, 거짓이면 값2 리턴

IFNULL(값1, 대체할 값2) : 값1이 null이면 값2로 대체, null이 아니면 값1 리턴

 

NULLIF(값1, 값2) : 값1=값2이 true이면 null 그렇지 않으면 값1이 리턴

 

select if(3 > 2, '크다', '작다'), 
	   if(3 > 5, '크다', '작다'), 
       	nullif(3, 3), 
       	nullif(3, 5), 
	   ifnull(null, 'b'), 
       ifnull('a', 'b')
from dual;
-- 크다 작다 NULL 3 B A

 

 

WHERE 절에서 조건을 쓰고 싶으면 아래와 같은 형태로 사용 가능

WHERE 컬럼명 IS NULL

 

COALESCE

모든 DBMS에서 사용가능한 NULL 처리 

참고로 발음은 [kōəˈles] 

COALESCE(컬럼명, 컬럼명이 NULL인경우 대체할 값)

COALESCE(컬럼명1, 컬2, 컬3, 컬4) : NULL이 아닌 첫 번째 컬럼을 반환. 모두 NULL 이라면 NULL 반환

SELECT COALESCE(NAME, "No name")
FROM ANIMAL_INS

 

 

 

CASE

SELECT

    CASE

        WHEN 조건식1 THEN 식1

        WHEN 조건식2 THEN 식2

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

    END T

FROM DAUL

 

SELECT
    CASE
        WHEN SEX =='M' THEN '남성'
        WHEN SEX =='F' THEN '여성'
        ELSE '신원미상'
    END SEX_NM
FROM USER;

 

댓글