有人可以解释一下SQL中的以下行为吗?
SELECT * FROM MyTable WHERE MyColumn != NULL (0 Results) SELECT * FROM MyTable WHERE MyColumn <> NULL (0 Results) SELECT * FROM MyTable WHERE MyColumn IS NOT NULL (568 Results)
<>是标准SQL-92;!=是等效的。两者都评估值,但NULL不是-NULL是占位符,表示不存在值。
<>
!=
NULL
这就是为什么您只能在此类情况下使用IS NULL/IS NOT NULL作为谓词的原因。
IS NULL
IS NOT NULL
此行为不特定于SQL Server。所有符合标准的SQL方言都以相同的方式工作。
注意 :要比较如果您的 值不为null ,请使用IS NOT NULL,而要与 不为null 值进行比较,请使用<> 'YOUR_VALUE'。我不能说我的值是否等于NULL,但是我可以说我的值是NULL还是NOT NULL。如果我的值不是NULL,则可以进行比较。
<> 'YOUR_VALUE'