하나의 항등 연산자로 0과 NULL을 테스트하는 방법이 있습니까?sql 부울 진리 테스트 : 0 OR null
는 내가이 작업을 수행 할 수있는 실현이 작동 할 경우
가WHERE field = 0 OR field IS NULL
하지만 내 인생은 백 번 쉬울 것 :
WHERE field IN (0, NULL)
을 (BTW, 왜하지 않습니다 그 작동합니까?)
나는 (COALESCE와 함께) SELECT 문에서 NULL을 0으로 변환하는 방법에 대해서도 읽었습니다. 내가 사용하고있는 프레임 워크는이 점을 불쾌하게 만들 것입니다.
이것을 실현하는 것은 이상한 일이지만, WHERE 조건을 사용하여 0과 NULL을 테스트 할 수있는 방법이 있습니까?
은 "왜하지 않습니다 그 일 '부분 :'필드 = 0 또는 필드 = NULL' 지난 경우'unknown' 어디에서 필드 (0, NULL)이''입니다 –
당신이 만약 IN 절을 확장하면, 왜 작동하지 않는지 명확하게 알 수 있습니다 :'field IN (0, NULL)'은'field = 0 OR field = NULL'과 동일하고 "="연산자를 사용하여 테스트 할 수 없습니다 NULL의 경우 결과를 알 수 없습니다. –
그 반대의 경우, 필드 <> 0이 작동합니다. 그러나 null 결과에 대한 연산이 여전히 널 (null) 인 경우이를 무효화 할 수 없습니다. –