SQL 问题:WHERE field="XXX" 有效,但 WHERE field<>"XXX" returns 空白 table

SQL problem: WHERE field="XXX" works, but WHERE field<>"XXX" returns blank table

所以我有一个工作正常的查询,但被要求添加另一个限定符。 我们想要删除在特定列中具有特定文本的结果。如果没有这个限定符,我会得到一个 table,其中包含 NULL 和所述列中的 this 文本。 添加 WHERE field='TEXT' 让我列出我想排除的那些。但是 none 对立面起作用。 WHERE field<>'TEXT'WHERE NOT field='TEXT'WHERE field NOT LIKE 'TEXT'WHERE field NOT LIKE '%TEXT' 都给我同样的东西——空白 table。

有人能帮忙吗?

Without this qualifier I get a table that has NULLs and the this text in said column

如果您的 table 看起来像这样:

Field
TEXT
TEXT
NULL
TEXT

然后 field = 'TEXT' 的 WHERE 子句将 return 3 行,但是 field <> 'TEXT' 的 WHERE 子句将正确地 return 没有行。没有什么等于空值,甚至不等于另一个空值。也没有什么不等于 null。这意味着 TEXT 行被排除,因为 WHERE field<>'TEXT' 为假,但空值被排除,因为 null<>'TEXT' 的结果实际上为空,当where 子句选择包含行