使用!=查询具有一些NULL值的字段

Bki*_*ins 2 sql-server-2005

我有报告引用SQL Server中的视图.用户可以对char字段进行过滤,但是当他们使用"!="过滤值时,会过滤掉具有该值的记录以及该字段中具有NULL值的任何记录.我在报告之外测试了这个,通过将过滤器放在SQL代码的WHERE子句中并获得相同的结果.为什么会这样?我该如何解决这个问题?

例如:

SELECT f1, f2, f3
FROM aTable

 f1   f2   f3
---- ---- ----
 Y    Y    NULL
 Y    N    M
 N    Y    N
 Y    N    NULL

SELECT f1, f2, f3
FROM aTable
WHERE f3 != 'N'

 f1   f2   f3
---- ---- ----
 Y    N    M
Run Code Online (Sandbox Code Playgroud)

如果您需要其他信息,请与我们联系.

你能提供的任何见解都会有所帮助:-)

谢谢,

Gre*_*ill 5

使用NULL的比较操作始终评估为false.您可以使用:

WHERE f3 is null or f3 != 'N'
Run Code Online (Sandbox Code Playgroud)