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으로 반환하는 방법에 대하여 알아보았습니다. 저 같은 경우에도 초기 값이 반환되지 않아서 당황한 적이 많았습니다. 주의해야 할 점도 있지만, 적절하게 사용한다면 유용하게 사용될 것으로 판단됩니다. 많은 도움이 되시길 바라며, 찾아주셔서 감사합니다.
'DataBase > MSSQL' 카테고리의 다른 글
[MSSQL] DELETE(삭제) 문 사용법 및 예제 (0) | 2024.04.16 |
---|---|
MSSQL UPDATE 사용법 및 예제 (0) | 2024.02.29 |
[MSSQL] INSERT INTO SELECT 문 (조회된 결과를 삽입) (0) | 2023.11.14 |
[MSSQL] INSERT 문 사용법 및 예제 (+ 여러개 레코드 추가) (0) | 2023.11.13 |
[MSSQL] SELECT 문 사용법 및 예제 (0) | 2023.11.02 |
댓글