我有报告引用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
如果您需要其他信息,请与我们联系。
您可以提供的任何见解都会有所帮助: - )
谢谢,
本
答案 0 :(得分:5)
使用NULL的比较操作始终评估为false。您可以使用:
WHERE f3 is null or f3 != 'N'
答案 1 :(得分:0)
您可以使用ISNULL功能
SELECT f1, f2, f3 FROM aTable WHERE ISNULL(f3,'')!='N'