개발/SQL

[MSSQL] Null 체크 및 대체 (ISNULL)

김토끼A 2021. 8. 30. 01:26

MSSQL

 데이터 중 NULL값이 있을 수 있습니다. 이런 NULL값을 체크하여 다른문자로 대체를 하여 표현할 수도 있고, 그것으로 비교할 수도 있는 ISNULL에 대해 알아보겠습니다.

 

ISNULL(값, NULL일 경우 대체하고 싶은 값)

: ISNULL에 NULL을 체크하고 싶은 칼럼이나 값을 적고, 그게 NULL일 경우 대체할 값을 적어주면 됨.

아래 예시를 보시면 @V_VAL이라는 변수가 NULL인데 이걸 ISNULL을 사용면서 '값없음'으로 표현하는걸 확인할 수 있습니다.

 

DECLARE @V_VAL NVARCHAR(10) = NULL

SELECT ISNULL(@V_VAL, '값없음') // 값없음

 

 

TMP_ANIMAL이라는 테이블이 아래와 같이 데이터가 들어가 있습니다. 이 데이터에 ISNULL을 사용하는 예시 2개를 보여드리겠습니다.

ISNULL
TMP_ANIMAL 테이블

 

예시1) 테이블 TMP_ANIMAL에서 칼럼 YN(사용유무)가 유이면 'Y'이고, 무면 'N' 또는 NULL인데 조회시 NULL인 값도 'N'으로 조회될 수 있도록 하시오.

 

SELECT NAME, ISNULL(YN, 'N') AS YN
  FROM TMP_ANIMAL

 

 위의 쿼리를 사용하게 되면 아래와 같이 'Y'였던 dog와 rabbit을 제외한 나머지가 'N'으로 조회된 것을 확인할 수 있습니다.

NULL체크
예시1 결과값

 

예시2) 테이블 TMP_ANIMAL에서 칼럼 YN(사용유무)가 유이면 'Y'이고, 무면 'N' 또는 NULL인데 사용유무가 무인 동물의 이름을 조회되도록 하시오.

 

SELECT NAME
  FROM TMP_ANIMAL
 WHERE ISNULL(YN, 'N') = 'N'

 

 위의 쿼리를 사용하게 되면 아래와 같은 결과를 얻게 됩니다. 'Y'였던 dog와 rabbit을 제외한 데이터에 있는 모든 동물의 이름이 조회되는 걸 확인할 수 있습니다. 그리고 조회조건에서도 ISNULL을 사용할 수 있다는걸 알 수 있습니다.