T-SQL查询返回的列之一具有这三个值之一
MEAN(transactions.product.SUM(amount))
我试图过滤掉1个值,但是当我使用这些子句时:
查询:
NULL, 0, 1
条款:
select foo
from dbo.table1
where ..
:仅返回列中值为0的数据where foo <> 1
:仅返回列中的空值Where foo is null
:仅返回列中值为0的数据什么是过滤数据的正确方法?
答案 0 :(得分:5)
在SQL Server中,您可以执行以下操作:
where foo <> 1 or foo is null
或者,如果您知道确实只有三个值,则类似:
where coalesce(foo, -1) <> 1
SQL Server没有NULL
安全比较。标准SQL支持:
where foo is distinct from 1
但是在SQL Server中不可用。
答案 1 :(得分:5)
由于只有3个值,这就足够了:
where isnull(foo, 0) <> 1
或:
where isnull(foo, 0) = 0