SQL Server过滤掉字符串但保留空字符串

时间:2016-08-12 09:10:28

标签: sql-server tsql

我有一张表格,其中包含我公司产品的详细信息,其中一列有产品类别,但还有尚未归类的产品的空字符串。

我试图过滤掉类别'垃圾桶'剩下的包括空的,但是当我应用过滤器时,空的过滤器也在消失...... 这是正常的吗?我怎样才能过滤掉垃圾'并留下其他一切,包括空值?

我正在使用WHERE这样的句子:

WHERE 
    table.month = 8 AND table.category <> 'trash'

1 个答案:

答案 0 :(得分:4)

您可能拥有category NULL条目。因此,不会返回它们,因为根据定义,比较null <> 'trash'既不是true也不是false,但WHERE子句只会返回所有条件为{{的记录1}}。

你可以修改你的陈述:

true

或者这个:

WHERE table.month = 8 AND ISNULL(table.category, '') <> 'trash'

这个前者用空字符串替换WHERE table.month = 8 AND (table.category is null OR table.category <> 'trash') 值,这应该返回你想要的值。