これは、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 がこのように動作するのはなぜですか? 私はこれを期待すべきでしたか?どうすれば修正できますか?