Предложения NOT IN и значения NULL

Эта проблема возникла, когда я получил различное количество записей для идентичных запросов, один из которых используетnot in where ограничение, а другойleft join, Стол вnot in ограничение было одно нулевое значение (неверные данные), что заставило этот запрос вернуть количество записей 0. Я вроде понимаю почему, но я мог бы использовать некоторую помощь, чтобы полностью понять концепцию.

Проще говоря, почему запрос A возвращает результат, а B нет?

A: select 'true' where 3 in (1, 2, 3, null)
B: select 'true' where 3 not in (1, 2, null)

Это было на SQL Server 2005. Я также обнаружил, что вызовset ansi_nulls off заставляет B возвращать результат.

Ответы на вопрос(11)

Ваш ответ на вопрос