访问SQL:在Null文本字段上不等于

时间:2015-06-09 02:42:53

标签: sql ms-access

我有这段代码:

UPDATE NewMaster SET NewMaster.[Risk Mitigation Status] = "Pending Audit/Assist"
WHERE (NOT (NewMaster.[Risk Mitigation Status] = "Complete"));

这会将所有行更新为“完成”,除了“待审核/辅助”(预期)和NULL(对我来说,完全出乎意料!)与<>相同运营商。我只需要添加OR IS NULL吗?这对我没有意义!

1 个答案:

答案 0 :(得分:0)

NULL就像那样棘手。您必须明确地测试或以其他方式逃避它们。尝试比较,转换或以其他方式将它们与任何非空值一起使用几乎总会破坏某些东西。

我没有使用Access SQL,但基于this documentation,看起来在Access SQL中转义它们的正确函数是'Nz'。如:

WHERE (NOT (Nz(NewMaster.[Risk Mitigation Status],"0") = "Complete"));

在将它们与字符串“Complete”进行比较之前,它会将值“0”替换为它找到的任何空值。