本文是有关 Access SQL 的集合的一部分。 其中介绍了如何编写 SELECT 子句,并演示了可使用的技术示例。
有关 Access SQL 的概述,请参阅 Access SQL:基本概念、词汇和语法一文。
本文内容
选择字段:SELECT 子句
语句 SELECT 通常以 子句开头 SELECT 。 使用 子句指定包含查询中所需数据的字段。 还可以使用表达式来代替字段,或者除了字段之外。 甚至可以将另一个 SELECT 语句用作字段。 这称为子查询。
假设你想要知道客户的电话号码。 如果存储这些数字的字段名为 txtCustomerPhone,则 SELECT 子句如下所示:
SELECT [txtCustomerPhone]
可以用方括号将该名称括起来。 如果名称不包含空格或特殊字符,则括号是可选的。 如果存在,则必须使用它们。
提示
含空格的名称更易辨认,在设计窗体和报表时可为用户节省时间,而缺点在于编写 SQL 语句时需键入更多空格。 在 Access 数据库中为对象命名时应考虑这一点。
如果 SQL 语句具有两个或更多具有相同名称的字段,请在 子句中添加 SELECT 每个字段的数据源名称。 使用在 子句中使用的 FROM 相同数据源名称。
选择所有字段
如果要包含数据源中的所有字段,可以在 子句中 SELECT 单独列出这些字段,或使用星号通配符 (*) 。 使用星号时,Access 确定运行查询时数据源包含的字段,并包括所有这些字段。 这有助于在将新字段添加到数据源时使查询保持最新。
可以在 SQL 语句中将星号与一个或多个数据源一起使用。 如果将星号用于多个数据源,请将数据源名称与星号一起包含,以便 Access 可以确定要使用的源。
例如,假设你想要从表中选择所有字段, Orders 但只选择表中的电子邮件地址 Contacts 。 子 SELECT 句可能如下所示:
SELECT Orders.*, Contacts.[E-mail Address]
注意
跟踪星号的使用情况。 如果以后有人向数据源添加新字段,而你没有计划这些字段,则查询结果可能不是所需的。
选择非重复值
如果知道语句将返回重复数据,并且只想查看非重复值,请使用 子句中的 DISTINCTSELECT 关键字 (keyword) 。 例如,如果某些客户兴趣使用相同的电话号码, DISTINCT 请确保每个电话号码只看到一次:
SELECT DISTINCT [txtCustomerPhone]
对字段或表达式使用替代名称:AS 关键字
可以使用 子句中的 关键字 (keyword) 和字段别名SELECT更改数据表视图中AS任何字段显示的标签。 字段别名是为使结果更易辨认而分配给查询中某个字段的名称。 例如,如果要从名为 txtCustPhone的字段中选择数据,可以使用字段别名使结果更易于读取:
SELECT [txtCustPhone] AS [Customer Phone]
注意
在 子句中使用表达式 SELECT 时,必须使用字段别名。
使用表达式进行选择
有时,你希望根据数据查看计算,或者仅返回字段值的一部分。 例如,假设你想要根据字段中的数据返回客户出生的 BirthDate 年份。 子 SELECT 句可能如下所示:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
此表达式使用 DatePart 函数和两个参数: "yyyy" (常量) 和 [BirthDate] (标识符) 。
如果任何有效的表达式返回单个输入值的单个值,则可以将其用作字段。