Access SQL:SELECT 子句
Applies ToMicrosoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

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

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

本文内容

选择字段:SELECT 子句

SELECT 语句通常以 SELECT 子句开头。 SELECT 子句用于指定要在查询中使用的含数据的字段的名称。 可以使用表达式代替字段,或除字段外还可以使用表达式。 甚至可以将另一个 SELECT 语句用作字段,我们将这种用法称为子查询。

假设你想知道客户的电话号码。 假定存储客户电话号码的字段称为 txtCustPhone,SELECT 子句如下:

SELECT [txtCustomerPhone]

可以用方括号将该名称括起来。 如果名称不含任何空格或特殊字符(例如标点符号),则方括号为可选项。 如果名称含有空格或特殊字符,则必须使用方括号。

提示: 含空格的名称更易辨认,在设计窗体和报表时可为用户节省时间,而缺点在于编写 SQL 语句时需键入更多空格。 在 Access 数据库中为对象命名时应考虑这一点。

如果 SQL 语句有两个或两个以上同名字段,必须向 SELECT 子句中的字段名添加各字段的数据源名称。 使用在 FROM 子句中所用的相同字段源名称。

选择所有字段

要包含字段源中的所有字段时,可以在 SELECT 子句中分别列出所有字段,也可以使用星号通配符 (*)。 使用星号时,Access 确定查询运行时数据源所含的字段,并将那些字段包括在查询中。 这有助于确保向数据源添加了新字段时,查询保持最新状态。

可在 SQL 语句中可将星号同一个或多个数据源一起使用。 如果使用星号并且有多个数据源,必须包含数据源名称以及星号,以便 Access 可以确定要从中包括所有字段的数据源。

例如,假设要选择订单表中所有字段,但只选择联系人表中的电子邮件地址。 SELECT 子句可能如下所示:

SELECT Orders.*, Contacts.[E-mail Address]

注意: 跟踪星号的使用情况。 如果新字段在稍后被添加到该数据源,而你并未为此做好计划,查询结果可能并不如你所愿。

选择非重复值

如果知道语句将选择冗余数据,而你只想看到非重复值,则可以在 SELECT 子句中使用 DISTINCT 关键字。 例如,假设各客户分别代表几项不同的利益,而其中一些客户使用同一个电话号码。 如果想确保只看到每个电话号码一次,SELECT 子句如下:

SELECT DISTINCT [txtCustomerPhone]

对字段或表达式使用替代名称:AS 关键字

在 SELECT 子句中使用 AS 关键字和字段别名,即可更改为数据表视图中的任何字段显示的标签。 字段别名是为使结果更易辨认而分配给查询中某个字段的名称。 例如,如果想选择名为 txtCustPhone 的字段中的数据,而该字段包含客户电话号码,可通过在 SELECT 语句中使用字段别名提高可读性,如下所示:

SELECT [txtCustPhone] AS [Customer Phone]

注意: 在 SELECT 子句中使用表达式时,必须使用字段别名。

使用表达式进行选择

有时希望查看基于数据的计算,或仅检索字段的一部分数据。 例如,假设想根据数据库中 BirthDate 字段内的数据返回客户的出生年份。 SELECT 子句可能如下所示:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

此表达式中包含 DatePart 函数和两个参数 — "yyyy"(常数)和 [BirthDate](标识符)。

如果表达式在给定一个输入值时输出一个值,则可以将任何有效的表达式用作字段。

返回页首

需要更多帮助?

需要更多选项?

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

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