在MS Access数据表中,是否可以在表中的特定字段中过滤那些值为null或为空的记录?
答案 0 :(得分:1)
是
WHERE myCol IS NULL OR LEN(myCol) = 0
答案 1 :(得分:1)
在您的SQL语句中:
WHERE Nz(CompanyName, '') = ''
在表单的过滤器属性中:
Nz(CompanyName, '') = ''
Mitch Wheat发布的解决方案也将起作用。我不确定哪一个会提供最佳性能。如果您正在使用Mitch的解决方案,并且您还在Where子句中使用其他条件,请不要忘记插入如下括号:
WHERE (myCol IS NULL OR LEN(myCol) = 0) AND myCol2 = True
答案 2 :(得分:1)
使用条件中的函数意味着您无法使用索引。 @Mitch Wheat的解决方案将使用Is Null
测试的索引,但不会使用Len()
测试。
一个可攻击的WHERE子句就是这样:
WHERE myCol Is Null OR myCol = ""
但是我建议关闭“允许零长度字符串”,然后你只需要进行Null测试,在索引字段上测试非常快。
对于它的价值,我发现MS更改新文本字段的默认值以启用允许ZLS非常烦人。这意味着当我使用表设计器创建新字段时,我必须更改它们中的每一个。