DataBase
[DBMS] 간단한 Null 체크 방법
과일가게 개발자
2014. 7. 31. 14:33
반응형
DB에서 어떠한 컬럼의 값이 null인 것을 체크하고 null일경우에 대체값을 넣어주는 방법으로
쿼리를 만들거나 할때 상당히 유용한 함수이다.
프로그램 언어에서 null을 체크한뒤에 특정 값으로 넣어도 되지만, 대체하는 값이 고정되어 있다면
쿼리에서 해당 함수들을 이용하여 코드를 줄이는것이 보기에 좋다.
아래 예제는 DBMS에 따라 함수명만 다를뿐 모두 동일한 결과를 표현하는 내용이다.
cnt 컬럼의 값이 null 일 경우 0으로 출력하고 그렇지 않을경우 cnt 값을 출력한다.
공통사용법 : 함수명(체크할 값, null일경우 대체할 값)
1. MySQL - IFNULL
SELECT ifnull(cnt, 0) as cnt FROM TB_test ;
2. Oracle - NVL
SELECT nvl(cnt, 0) as cnt FROM TB_test ;
3. MSSQL - ISNULL
SELECT isnull(cnt, 0) as cnt FROM TB_test ;
Tip)
MySQL에도 ISNULL 함수가 있으나 사용용도가 다르다.
MySQL에서 ISNULL은 해당 컬럼의 참,거짓(0,1) 만 반환한다.
보통은 다음과 같이 IF문과 같이 사용한다.
SELECT if(isnull(cnt), "NULL이 아닐때 값", "NULL일 경우 값") as cnt FROM TB_test ;