본문 바로가기

데이터베이스/MariaDB

컬럼의 NULL처리에 용이한 함수 - IFNULL()

IFNULL() 

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

문법
SELECT
	IFNULL(Colmn명, "NULL일 경우,대체값")
   FROM table
   ;

 

예시코드
// NAME Column이 NULL인 경우 "NoName"을 출력, NULL이 아닌 경우 NAME Column의 데이터 출력
SELECT 
    IFNULL(NAME, "No name") as NAME
  FROM ANIMAL
    ;

 

응용
SELECT
    IFNULL(SUM(IF(REGL_YN = 'Y',1,0)),0) ITEM_CNT
  FROM ITEM_INFO A

IF()와 SUM() IFNULL() 세개의 함수를 혼용하여 사용하였다.

IF(Column조건 , True, false)

Column의 조건에 따라 True일 경우, False일 경우 각각 반환값을 지정하는 해당 함수의 특성을 이용하여 

 

위의 조건 (REGL_YN)의 값이 'Y'일때 1을 반환하여 해당 값을 SUM()  처리하여 컬럼의 갯수를 반환한다.

해당 데이터가 하나도 없을 경우 NULL이 반환되므로 IFNULL을 이용하여, 0으로 반환처리 하여

갯수를 반환한다 

 

IF()와 IS NULL()을 이용한 NULL처리

// NAME Column이 NULL이 True인 경우 "No name"을, False인 경우는 NAME Column을 출력
SELECT 
	IF(IS NULL(NAME), "No name", NAME) as NAME
  FROM ANIMAL
  ;

위와같이 표현하면 IFULL과 동일한  형태로 표현된다

IS NULL()로 NAME 컬럼의 값을 체크하고

IF()를 이용해 해당 값의 경우에 따라 값을 다르게 반환한다 IF(컬럼, TRUE일때 반환, FALSE일때 반환)