gpt4 book ai didi

ms-access - 有人可以解释 Access 中 "AND"和 "&"之间的区别吗

转载 作者:行者123 更新时间:2023-12-04 05:40:19 26 4
gpt4 key购买 nike

我对 Access 开发非常陌生。昨天,我开发了一个查询,在 WHERE 部分,我使用了“&”,如下所示:

WHERE ((condition A Is Null) & (condition B Is Null))

它返回了 53 次点击。

然后我把它改成
WHERE ((condition A Is Null) AND (condition B Is Null))

并获得了 71 次点击。

我知道这与“按位与”与“逻辑与”有关,但是有人可以花点时间用 noobish(英语)向我解释这一点吗?

最佳答案

AND是逻辑运算符。 &是一个连接运算符。评论 Table of operators有关 Access 2007 中可用的各种运算符的更多详细信息。

要查看操作上的差异,请从表 WeinerDog 开始.

id field1 field2
1 a
2 y
3
field1 中的空白和 field2列表示空值。

接下来运行这个查询:
SELECT
WeinerDog.id,
WeinerDog.field1,
WeinerDog.field2,
(WeinerDog.field1 Is Null)
& (WeinerDog.field2 Is Null) AS concat_result
FROM WeinerDog
WHERE
(WeinerDog.field1 Is Null) & (WeinerDog.field2 Is Null);

该查询应该为您提供以下结果集:
id field1 field2 concat_result
1 a 0-1
2 y -10
3 -1-1

检查 concat_result柱子。它包含字符串,这些字符串是连接在一起的 2 个表达式的真值。这些真值是 True (-1) 或 False (0)。但是,由于连接的结果必须是字符串,因此数字真值在连接在一起之前首先被转换为字符串。

然后检查 WHERE条款。数据库引擎将为您提供 WHERE 的所有行子句计算为 True .实际上,不仅是 -1,而且除零以外的任何非 Null 值都可以代表 True .正如您从 concat_result 中看到的列,这些行都不会被 False 评估为零( WHERE )子句...因此表中的所有行都将包含在查询结果集中。

如果您更改 WHERE替换条款 AND& ,查询将只返回 WeinerDog行 (id=3) 的两个 field1 都为 Null和 field2 .
WHERE
(WeinerDog.field1 Is Null) AND (WeinerDog.field2 Is Null);

关于ms-access - 有人可以解释 Access 中 "AND"和 "&"之间的区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com