Applies ToMicrosoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

本文是关于 Access SQL 的一系列文章之一。 本文介绍如何编写 WHERE 子句,使用示例说明可在 WHERE 子句中使用的各种技术。

在 SQL 语句中,WHERE 子句指定对于包含查询结果中的值的记录,字段值必须满足的条件。

有关 Access SQL 的概述,请参阅 Access SQL:基本概念、词汇和语法一文。

本文内容

通过使用条件来限制结果

当使用数据来限制查询中返回的记录数目时,可使用 条件。 查询条件类似于公式,它是一个可能由字段引用、运算符和常量组成的字符串。 查询条件是一种 表达式。

下表显示了一些示例条件并阐释其工作原理。

条件

说明

>25 and <50

此条件适用于数字字段,如 Price 或 UnitsInStock。 它仅包含 Price 或 UnitsInStock 字段内有大于 25 且小于 50 的值的记录。

DateDiff ("yyyy", [BirthDate], Date()) > 30

此条件适用于日期/时间字段,如 BirthDate。 查询结果中只包含某人的出生日期与当前日期之间的年份差距大于 30 的记录。

Is Null

此条件可以应用于所有类型的字段以显示字段值为 null 的记录。

正如上表所示,根据要应用条件的字段的数据类型以及你的特定要求,这些条件可能看上去彼此有很大的不同。 某些条件很简单,且使用的是基本运算符和常量。 另外的一些则很复杂,且使用的是函数以及特殊运算符,并包含字段引用。

重要: 如果某字段使用聚合函数,则无法在 WHERE 子句中指定该字段的条件。 可使用 HAVING 子句指定聚合字段的条件。 有关详细信息,请参阅文章 Access SQL:基本概念、词汇和语法以及 HAVING 子句

WHERE 子句语法

在 SELECT 语句中的 WHERE 子句中使用查询条件。

WHERE 子句具有以下基本语法:

WHERE field = criterion

例如,假设你希望获得某位客户的电话号码,但你只记得该客户的姓氏是 Bagel。 可以使用 WHERE 子句来限制结果,以便查找所需的电话号码,而无需在数据库中查看所有电话号码。 假设姓氏存储在名为 LastName 的字段中,WHERE 子句如下所示:

WHERE [LastName]='Bagel'

注意: WHERE 子句中的条件无需基于等值。 可以使用其他比较运算符,例如大于 (>) 或小于 (<)。 例如,WHERE [Price]>100

使用 WHERE 子句合并数据源

有时,可能需要基于具有匹配数据但数据类型不同的字段合并数据源。 例如,一个表中的字段可能是“数字”数据类型,你希望将此字段与其他表中的“文本”数据类型字段进行比较。

无法在具有不同数据类型的字段间创建联接。 若要基于具有不同数据类型的字段中的值合并两个数据源的数据,可使用 LIKE 关键字,创建一个 WHERE 子句,将一个字段用作另一个字段的条件。

例如,假设你希望仅当表 1 中的数据(表 1 中的文本字段)与表 2 中的数据(表 2 中的数字字段)匹配时,使用表 1 和表 2 中的数据。 WHERE 子句将类似以下:

WHERE field1 LIKE field2

若要详细了解如何创建用于 WHERE 子句的条件,请参阅查询条件示例一文。

页面顶端

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。