상세 컨텐츠

본문 제목

[MSSQL] ISNULL 이란

카테고리 없음

by dy8_8 2022. 12. 9. 17:51

본문

728x90

SELECT IS NULL (COLUMN, NULL일때 들어갈 값) AS RESULT

  FROM TABLE

WHERE 조건문

 

ISNULL이란 위의 쿼리와 같이 조건문에 해당하는 컬럼이 NULL이 아닌 경우

COLUMN명을 표시, NULL일 경우 NULL일때 들어갈 값을 넣어주면 된다. 

 

하지만 MSSQL은 ORACLE과 다르게 데이터가 없으면 NULL로 인식을 못하는 것 같다.

 

SELECT ISNULL(0, 1) AS RESULT
  FROM USER_INFO
 WHERE ID = #{id}

이렇게 ID 중복 검사 쿼리를 짰는데 

원래 있던 ID를 넣으면 0이 잘 나오지만 

없는 ID를 넣으면 RESULT 값에 1이 반환되지 않는다.

 

값이 없으면 NULL로 인식을 못 해서 그런 것 같다.

 

찾아보니 MAX를 사용하면 된다고 하길래 아래처럼 쿼리를 수정했다.

SELECT ISNULL(MAX(0), 1) AS RESULT
  FROM USER_INFO
 WHERE ID = #{id}

위와 같이 쿼리를 수정하고 나니 

아이디가 있으면 0, 없으면 1을 잘 반환했다.

 

MSSQL은 값이 없으면 NULL로 인식 하지 않는다.