我正在尝试从MS Access表中检索不包含单词" survey"在名为SurveyedBy的字段中。我使用WHERE子句开发了以下查询以限制结果:
SELECT PropertyNumber, PropertyOwner, EnteredBy, EnterDate, SurveyedBy, SurveyDate, YearBuilt
FROM MarshallSwift
WHERE (LCase([SurveyedBy]) Not Like "*survey*");
但是,当我运行查询时,它不会返回该字段中包含null的任何记录。我尝试使用UCase函数代替" SURVEY "但仍然没有得到SurveyedBy字段为空的任何记录。
我找到答案的最接近的是:Access And/Or exclusions。但是,我正在使用DAO。我确实尝试使用%作为通配符,但结果却是一样的。
我很困惑因为UCase函数应该根据这个返回null:http://office.microsoft.com/en-us/access-help/ucase-function-HA001228930.aspx。也许我不理解WHERE子句?非常感谢任何想法。
谢谢。
答案 0 :(得分:2)
Null不等于任何东西,也不像任何东西,尝试:
WHERE (LCase([SurveyedBy] & "") Not Like "*survey*");
这将使SurveyedBy成为一个空字符串。如果您愿意,也可以查看Nz(http://www.techonthenet.com/access/functions/advanced/nz.php)。
答案 1 :(得分:2)
NULL
"失败"除IS NULL
以外的所有测试。明确检查:
WHERE (LCase([SurveyedBy]) Not Like "*survey*") or SurveyedBy is null