gpt4 book ai didi

sql - 使用 NOT LIKE 在 Access 中查询

转载 作者:行者123 更新时间:2023-12-02 06:56:19 26 4
gpt4 key购买 nike

我正在使用如下查询。

SELECT * FROM TableName
WHERE ([Material Description] Not Like "*LICENSE*" Or
[Material Description] Not Like "*LICENCE*");

但是,这会获取在 Material 描述字段中具有 LICENSE 或 LICENSE 记录的结果。请告知我遗漏了什么,以便我的查询产生的结果省略了 Material 描述字段中包含这些词的记录。

最佳答案

你真正想要的是介于两者之间的 AND:

SELECT * FROM TableName
WHERE ([Material Description] NOT LIKE '*LICENSE*' AND
[Material Description] NOT LIKE '*LICENCE*');

您当前将选择记录“LICENSE”,因为它NOT 包含“LICENCE”,而记录“LICENCE”,因为它NOT 包含“LICENSE”。< br/>您当前真正排除的记录是包含“LICENCE”AND“LICENSE”的记录,可能不多;)。将 Or 与 Not 结合使用会引起一点困惑。

实现相同目标的另一种方法是将 NOT 移到 ORed 条件前面:

SELECT * FROM TableName
WHERE NOT ([Material Description] LIKE '*LICENSE*' OR
[Material Description] LIKE '*LICENCE*');

这样一来,您实际想要实现的目标就更加清晰了。
这将读取 NOT (A OR B) 而不是 (NOT A) OR (NOT B) 并且具有非常不同的真值表:

A  B  |  (  ~  A  )  &  (  ~  B  )
----------------------------------
0 0 | 1 0 1 1 0
0 1 | 1 0 0 0 1
1 0 | 0 1 0 1 0
1 1 | 0 1 0 0 1


A B | ~ ( A | B )
-------------------------
0 0 | 1 0 0 0
0 1 | 0 0 1 1
1 0 | 0 1 1 0
1 1 | 0 1 1 1

你的真值表看起来像

A  B  |  (  ~  A  )  |  (  ~  B  )
----------------------------------
0 0 | 1 0 1 1 0
0 1 | 1 0 1 0 1
1 0 | 0 1 1 1 0
1 1 | 0 1 0 0 1

关于sql - 使用 NOT LIKE 在 Access 中查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30724077/

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