过滤数据表中的 null、空值
在 MS Access 数据表中,是否可以过滤表中特定字段中值为 null 或空的记录?
In an MS Access datasheet, is it possible to filter those records whose value is null or empty in a specific field in my table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的。
Yes.
在您的 SQL 语句中:
在表单的过滤器属性中:
Mitch Wheat 发布的解决方案也将起作用。我不确定哪一个能提供最佳性能。如果您正在使用 Mitch 的解决方案,并且还在 Where 子句中使用其他条件,请不要忘记插入括号,如下所示:
In your SQL statement:
In your form's filter property:
The solution posted by Mitch Wheat will also work. I'm not certain which one will offer the best performance. If you are using Mitch's solution and you are also using other conditions in your Where clause, don't forget to insert parenthesis like this:
在条件中使用函数意味着您不能使用索引。 @Mitch Wheat 的解决方案将使用索引进行
Is Null
测试,但不使用Len()
测试。一个可控制的 WHERE 子句是这样的:
但我建议关闭“允许零长度字符串”,然后您只需要进行 Null 测试,这在索引字段上将非常快。
无论如何,我发现 MS 更改了新文本字段的默认设置以启用允许 ZLS 非常烦人。这意味着当我使用表设计器创建新字段时,我必须更改其中的每一个。
Using a function in the criterion means you can't use the indexes. @Mitch Wheat's solution will use the index for the
Is Null
test, but not for theLen()
test.A sargable WHERE clause would be this:
But I'd recommend turning off "allow zero-length strings" and then you need only do the Null test, which on an indexed field will be extremely fast.
For what it's worth, I find it extremely annoying that MS changed the defaults for new text fields to have Allow ZLS turned on. It means that I have to change every one of them when I'm using the table designer to create new fields.