指定使用 SQL 查询选择的记录。
语法
SELECT [ALL |DISTINCT |DISTINCTROW |[TOP n [PERCENT]]]
FROM 表包含这些谓词的 SELECT 语句包含以下部分:
部分 |
说明 |
ALL |
如果不包含谓词之一,则假定为 。 Microsoft Access 数据库引擎选择满足 SQL 语句中条件的所有记录。 以下两个示例等效,并返回 Employees 表中的所有记录:
|
DISTINCT |
省略所选字段中包含重复数据的记录。 要包含在查询结果中,SELECT 语句中列出的每个字段的值必须是唯一的。 例如,在 Employees 表中列出的多个员工可能具有相同的姓氏。 如果两条记录在 LastName 字段中包含 Smith,则以下 SQL 语句仅返回一条包含 Smith 的记录:
如果省略 DISTINCT,此查询将返回两条 Smith 记录。 如果 SELECT 子句包含多个字段,则所有字段中的值组合必须是唯一的,才能将给定记录包含在结果中。 使用 DISTINCT 的查询的输出不可更新,并且不会反映其他用户的后续更改。 |
DISTINCTROW |
省略基于整个重复记录的数据,而不仅仅是重复字段。 例如,可以创建一个查询,用于联接 CustomerID 字段的 Customers 和 Orders 表。 “客户”表不包含重复的 CustomerID 字段,但“订单”表会这样,因为每个客户可以有多个订单。 以下 SQL 语句演示如何使用 DISTINCTROW 生成至少具有一个订单但不包含有关这些订单的任何详细信息的公司列表:
如果省略 DISTINCTROW,此查询将为具有多个订单的每个公司生成多行。 DISTINCTROW 仅在从查询中使用的部分表(但不是全部)中选择字段时有效。 如果查询仅包含一个表,或者从所有表中输出字段,则忽略 DISTINCTROW。 |
TOP n [PERCENT] |
返回一定数量的记录,这些记录位于 ORDER BY 子句指定的范围的顶部或底部。 假设你想要 1994 年班级前 25 名学生的姓名:
如果未包含 ORDER BY 子句,查询将从 Students 表中返回一组任意的 25 条记录,这些记录满足 WHERE 子句。 TOP 谓词不选择相等值。 在前面的示例中,如果第 25 个和 26 个最高年级分数的平均值相同,则查询将返回 26 条记录。 还可以使用 PERCENT 保留字返回特定百分比的记录,这些记录位于 ORDER BY 子句指定的区域的顶部或底部。 假设你希望排名倒数 10% 的班级,而不是排名前 25 的学生:
ASC 谓词指定底部值的返回。 TOP 后面的值必须是无符号整数。 TOP 不会影响查询是否可更新。 |
table |
从中检索记录的表的名称。 |