데이터 베이스

[MySQL] 여러가지 NULL 처리 방법 (feat. IF , IFNULL , COALESCE , CASE)

ImKDM 2022. 9. 26. 17:09
728x90

데이터 값이 NULL 인 경우 다르게 처리해야 할 때가 있다.

이때 4가지 방법으로 NULL 을 다르게 처리할 수 있다.

 

1.  IF 로 처리하기     IF ( 조건문 ,  '참일 경우',  '거짓일 경우' )   

IF 문으로 해당 컬럼의 값이 NULL 일 경우 처리할 수 있다.

 

SELECT IF(NAME IS NULL, 'No name', NAME)
FROM 테이블명;

 


2.  IFNULL 로 처리하기     IFNULL ( 컬럼 명,  'NULL 일 경우 대체 값' ) 

IFNULL 문으로 해당 컬럼의 값이 NULL 일 경우 원하는 값으로 대체할 수 있다.

 

SELECT IFNULL(NAME, 'No name')
FROM 테이블명;

 


3.  COALESCE  로 처리하기     COALESCE ( 첫 번째 표현식,  두 번째 표현식,  세 번째 표현식 . . . ) 

지정한 표현식들 중에서 NULL이 아닌 첫 번째 값을 반환한다. 

따라서 NULL 값을 원하는 값으로 변경할 수 있다.

 

SELECT COALESCE(NAME, 'No name')
FROM 테이블명;

 


4.  CASE  로 처리하기     ( CASE   WHEN  조건식1  THEN  '대체 값'     WHEN  조건식2  THEN  '대체 값 2'    END ) 

CASE 를 통해 NULL 값이면 원하는 대체 값으로 바꿀 수 있다.

 

SELECT (CASE
           WHEN NAME IS NULL THEN 'No name'
           ELSE NAME
        END)
FROM 테이블명;