Это о странном поведении, которое я обнаружил в Microsoft Sql Server. Пожалуйста, поправьте меня, если я ошибаюсь.
SELECT COUNT(*) FROM TABLEA
WHERE [Column1] IS NULL;
Это возвращает 30018 строк.
CREATE VIEW VIEWB AS
SELECT * FROM TABLEA AS t1
WHERE t1.[Column1] NOT IN ('Cross/Up sell', 'Renegotiation', 'Renewal')
Если я проверяю VIEWB
, я не нахожу NULL
в Column1
:
SELECT COUNT(*) FROM VIEWB
WHERE [Column1] IS NULL;
Это возвращает 0 строк.
Почему? В приведенном выше запросе исключаются 3 значения, но он не должен исключать NULL. Почему Ms Sql Server ведет себя так? Должен ли я ожидать этого? Как я могу это исправить?