我认为你的方法很好:
SELECt *FROM MyTableWHERe myCol <> 3 OR myCol IS NULL
由于您要求替代方案,另一种方法是制作您的列NOT NULL并在数据库中存储另一个(否则未使用的)值而不是
NULL-例如
-1.然后表达式
myCol <> 3将匹配你的假
-NULL就像它与任何其他值一样。
SELECt *FROM MyTableWHERe myCol <> 3
但是总的来说,我建议不要使用这种方法。你已经在做的方式是正确的方式。
另外值得一提的是,其他几个数据库支持IS DISTINCT FROM完全符合您的要求:
SELECt *FROM MyTableWHERe myCol IS DISTINCT FROM 3
MySQL 具有
NULL-safe equal也可用于此目的:
SELECt *FROM MyTableWHERe NOT myCol <=> 3
不幸的是,SQL Server 尚不支持这两种语法中的任何一种。



