Access SQL:SELECT 子句

Access SQL:SELECT 子句

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

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

本文内容

选择字段:SELECT 子句

选择所有字段

选择非重复值

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

使用表达式进行选择

选择字段: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](标识符)。

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

返回页首

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×