본문 바로가기
DataBase/MSSQL

[MSSQL] 데이터 값이 NULL일 때 0으로 표시 (ISNULL 함수를 통한 NULL 체크)

by 코딩이라구 2024. 5. 29.

MSSQL에서는 조회(SELECT) 시 데이터 값이 없을 경우에는 NULL을 반환합니다. 이때, 숫자 또는 집계함수(MIN, MAX, SUM, COUNT, AVG)의 값 역시 NULL로 반환이 되어 곤란한 경우가 있습니다. 이번에는 ISNULL 함수를 이용하여 데이터의 값이 NULL인지 체크한 후 0으로 값을 반환하는 방법에 대하여 알아보도록 하겠습니다.


MSSQL 데이터 값이 NULL일 경우 0으로 값을 반환하는 방법

 

ISNULL 함수 (NULL 체크)

MSSQL에서 ISNULL 함수는 컬럼(Column)의 값이 NULL값일 경우에 지정한 다른 값으로 대체하여 값을 반환하는 기능입니다. 이 방법을 통하여 해당 숫자 또는 집계함수의 반환 값이 NULL인지 체크할 수 있습니다.

 

ISNULL 함수 사용 시 주의해야 할 점은 검색되는 레코드(행 또는 Row)가 없을 경우에는 NULL인지 판단할 값이 없으므로 결과가 출력되지 않습니다. 이럴 경우를 대비하는 방법으로는 집계함수 MAX 등을 사용하여 해당 MAX값이 없어도 NULL 행은 반환하므로 해당 값을 ISNULL 값을 통하여 체크할 수 있습니다.

 

사용법

-- 기본 문법
ISNULL(컬럼명, NULL의 대체값);

-- 예제
-- ● 데이터 값이 NULL인 경우 0으로 대체하여 값을 반환
ISNULL(id, 0);			-- 일반 컬럼
ISNULL(MAX(id), 0);		-- 집계함수

-- ● 데이터 값이 NULL인 경우 3으로 대체하여 값을 반환
ISNULL(id, 3);			-- 일반 컬럼
ISNULL(COUNT(id), 3);	-- 집계함수

-- 실제 사용 (이름이 '한재규'라는 데이터가 있으면 id를 반환, 없으면 0을 반환)
-- 주의! 해당 컬럼명만 넣게 된다면 '한재규'라는 이름의 데이터를 찾지 못할 시
-- 아무런 값도 반환하지 않습니다.
SELECT ISNULL(id, 0)
  FROM member
 WHERE name = '한재규';

-- 집계함수를 통하여 이름이 '한재규'인 데이터를 찾지 못하더라도 0으로 반환
SELECT ISNULL(MAX(id), 0)
  FROM member
 WHERE name = '한재규';

 

 

이번에는 MSSQL에서 ISNULL 함수를 통하여 조회된 데이터 값의 NULL을 체크 후 해당 값이 없을 경우에는 0으로 반환하는 방법에 대하여 알아보았습니다. 저 같은 경우에도 초기 값이 반환되지 않아서 당황한 적이 많았습니다. 주의해야 할 점도 있지만, 적절하게 사용한다면 유용하게 사용될 것으로 판단됩니다. 많은 도움이 되시길 바라며, 찾아주셔서 감사합니다.


 

[MSSQL] 문자열 원하는 영역 자르기 (SUBSTRING, LEFT, RIGHT)

MSSQL 데이터베이스의 검색 방법에서 문자열을 원하는 길이(영역)의 문자열만큼 잘라서 조회해야 할 경우가 있습니다. 이번에는 MSSQL에서 문자열 자르기의 3가지 종류인 SUBSTRING, LEFT, RIGHT 함수에

chragu.com

 

[MSSQL] INSERT INTO SELECT 문 (조회된 결과를 삽입)

지난번 MSSQL에서 INSERT 문의 사용법을 다뤄보았습니다. 이번에는 심화과정으로 원하는 데이터를 SELECT(조회) 한 후 그 결과를 현재 테이블에 INSERT(삽입) 하는 방법에 대하여 알아보도록 하겠습니

chragu.com

 

MSSQL TOP 사용법 (행의 수를 지정하여 출력)

이번에는 MSSQL에서 SELECT 문 사용 시 테이블의 레코드를 조회할 때 원하는 행의 수만큼 지정하여 화면에 출력하기 위한 구문에 대하여 알아보도록 하겠습니다. MySQL에서는 LIMIT 구문으로 사용되는

chragu.com

 

댓글