개인적인 정리

[MySQL] IFNULL - SELECT 문에서 NULL 값 대체/치환 본문

DB/MYSQL

[MySQL] IFNULL - SELECT 문에서 NULL 값 대체/치환

yeon.Biju 2021. 7. 22. 21:06

MySQL 에서 칼럼 값이 NULL 일 때 다른 값으로 대체/치환해주는 함수

1
2
SELECT IFNULL(필드명, '치환값'FROM TABLE명
 
cs

* 필드명 대신 다른 표현식도 가능.

 

이전에 정리한 글이 있어서 링크를 걸어본다.

https://web-obj.tistory.com/365

 

MySQL IFNULL(expr1, expr2)

MySQL 의 IFNULL 함수 IFNULL(expr1, expr2)  - IF() 함수와 마찬가지로 익숙하다.  - 오라클의 NVL()정도로 생각해도 문제가 없을 것 같다.  - expr1이 NULL이면 expr2, 그렇지 않으면 expr1 을 return If ex..

web-obj.tistory.com

 

예제)
-- NULL 을 숫자 0으로 치환해봤다.

1
SELECT IFNULL(NULL0) ;
cs

-- NULL 을 문자열 -- 로 치환해봤다.

1
SELECT IFNULL(NULL'--') ;
cs

 

NULL 값을 다른 값으로 대체하는 것은 다른 방법으로도 가능하다. 

 

1. IF 문을 이용할 수 있다.

   아래와 같이 사용이 가능하다.

1
SELECT IFNULL(칼럼명, '널널'), IF(칼럼명 IS NULL'널널널''널이 아님'FROM 테이블명;
cs

2. CASE WHEN 구문을 이용할 수 있다.

   아래와 같이 사용이 가능하다.

1
2
3
4
5
6
SELECT
    CASE WHEN IHIDNUM IS NULL THEN '널널널' 
    WHEN IHIDNUM ='33' THEN '33'
    ELSE '널이 아님'
    END AS IHIDNUM
    FROM comtngnrlmber ;
cs

 

그냥 NULLIF 함수도 한번 보자

이전에 정리한 글이 있다. 링크를 걸어본다.

https://web-obj.tistory.com/366

 

MySQL NULLIF()

MySQL 의 NULLIF() 함수.  - 사실 처음본다. 있는 줄 몰랐다.  - 동일한 개념을 CASE WHEN을 이용해서 써온 것 같다. NULLIF(expr1, expr2)  - expr1 =expr2 값을 비교해서 true 가 아니면 expr1 을 return 한..

web-obj.tistory.com

 

NULLIF(expr1, expr2)

   - expr1 =expr2 값을 비교해서 true 가 아니면 expr1 을 return 한다.  만약 true이면 NULL 을 return 한다.
   - 아래 에제를 보면 쉽게 이해가 갈 것이다.

1
2
3
4
5
SELECT NULLIF(11) ; 
--> null 을 리턴한다.
 
SELECT NULLIF(12) ;
--> 1을 리턴한다.
cs

 

오라클에서 비슷한 기능의 함수들이 있다.

 

NVL 을 이용해서 NULL 값 처리가 가능하다.

혹은 DECODECASE WHEN 등을 통해서도 가능하다.

 

 

 

뜬금없지만 MYBATIS 에서  NULL 을 체크하는 것은 아래 글을 참고한다. 

 

https://web-obj.tistory.com/484

 

MYBATIS NULL체크

전자정부표준프레임워크에서는 MYBATIS 에서 NULL 을 체크할 수 있는 함수를 제공해준다. 쿼리문에서 널을 체크하기 위해서 아래와 같이 사용이 가능하다. 1 2 3 4 SELECT * FROM TABLE_NAME WHERE 1=1 AND..

web-obj.tistory.com

 

'DB > MYSQL' 카테고리의 다른 글

MySQL SHOW 명령어  (0) 2021.10.22
MySQL autocommit  (0) 2021.09.11
MySQL 인덱스 확인  (0) 2021.09.02
DBeaver 다운로드  (0) 2021.09.01
MySQL 설치(소스 컴파일, 5.1 버전)  (0) 2021.07.11
[MySQL] 칼럼 추가 / 삭제  (0) 2021.02.04
MySQL 에서 날짜함수에 사용되는 지정자  (0) 2020.04.01
MySQL 에서 INTERVAL 에 쓸 수 있는 것들  (0) 2020.04.01
Comments