停止访问忽略一个字段为空的结果

时间:2016-02-16 16:17:18

标签: sql ms-access

在Access中,我有一个非常简单的查询,应该显示 AD电子邮件地址字段与 AD用户主体名称

不同的所有记录
SELECT * FROM [Active Directory] WHERE [AD Email Address] <> [AD User Principal Name];

此查询无误,但我发现不包含空 AD电子邮件地址但非空 AD用户主体名称的记录。

如何调整查询以包含这些结果?

2 个答案:

答案 0 :(得分:0)

正式答案是明确处理NULL值。所以,“正确”的答案是:

WHERE [AD Email Address] <> [AD User Principal Name] OR
      [AD Email Address] IS NULL AND [AD User Principal Name] IS NOT NULL OR
      [AD Email Address] IS NOT NULL AND [AD User Principal Name] IS NULL

通常,这是使用NZ()

处理的
WHERE NZ([AD Email Address], "") <> NZ([AD User Principal Name], "")

当底层字段不是空字符串时,这是有效的。

答案 1 :(得分:0)

将此添加到查询的末尾:

or ([AD Email Address] is null and [AD User Principal Name] is not null)

将使用空白电子邮件地址和非空白主要名称为您以前的结果和所有内容提供。