rowTypeID = (1,2,3 또는 null) 일 수있는 값의 열이있는 테이블이 있습니다. 3 값이없는 모든 행을 반환하는 쿼리를 작성하고 싶습니다. 이 예제에서 모든 1,2 행과 함께 모든 NULL 행을 원합니다. 값 3 인 행을 원하지 않습니다.SQL Server return 값과 NULL이 같지 않은 행과 NULL
데이터베이스에 대해 ANSI null ON이 설정되어 있습니다. 내가
내가
select * from my Table where myCol <> 3 or myCol Is NULL
를 작성해야하는 myCol 열에서 NULL이있는 모든 행을 반환하지 않습니다
select * from myTable where myCol <> 3
이 쿼리를 작성할 수없는 이유
난에 궁금 해요
항상 IS NULL을 포함해야합니까? 또는 where 절 myCol <> 3이 내 Col 값에 null이있는 행을 반환하도록 설정할 수 있습니까
그것은 NULL 작동 방식입니다. IS NULL과 IS NOT NULL을 제외하고는 비교가 이루어지지 않습니다. – kurosch
@kurosch : 엄격하게 라인을 따라 가면, 비교이기 때문에 NULL = NULL도 false를 반환합니까? – Marcel
@Marcel : 예, NULL = NULL은 항상 false이며, 그 문제에 너무 NULL이다 <> NULL :-) – kurosch