访问查询过滤器不过滤不排除空白

问题描述 投票:0回答:3

我有一个查询,我想排除某个字段具有特定文本值的结果。但是,我不想排除空白或其他值。

这就是我所做的: 场A 标准:不是“健康寿命”

当我运行此查询时,它成功排除了 Healthspan,但也排除了所有空白字段。有什么解决办法吗?

ms-access ms-access-2010
3个回答
0
投票

您的查询仅返回条件

[Field A] <> "Healthspan"
为 True 的行。但是,当
[Field A]
为 Null 时,条件将被评估为 Null,而不是 True,因此该行被排除。

+--------------+-----------------+
| Field A      | <> "Healthspan" |
+--------------+-----------------+
| "Healthspan" | False           | 
+--------------+-----------------+
| "foo"        | True            |
+--------------+-----------------+
| Null         | Null            |
+--------------+-----------------+

使用

OR
添加第二个条件以包含具有 Null
[Field A]
值的行:

SELECT y.*
FROM YourTable AS y
WHERE
       y.[Field A] <> "Healthspan"
    OR y.[Field A] Is Null;

0
投票

您需要使用 IsNull() 函数。

Not "Healthspan" OR IsNull([tblTableName].[Field A])=True

您会发现 IsNull() 函数非常方便。


0
投票

顺便说一句,这已经是 8 年后的事了,这种情况仍在继续,没有太大变化,对我来说,逻辑运算的结果应该是 true 或 false,将 NULL 作为第三种可能的结果是荒谬的,微软应该改变这一点.

© www.soinside.com 2019 - 2024. All rights reserved.