Access 中的 HAVING 字句用于指定包含 GROUP BY 子句的 SELECT 语句中显示哪些分组记录。 在 GROUP BY 对记录进行组合之后,HAVING 将显示由 GROUP BY 子句分组的满足 HAVING 子句条件的任何记录。
语法
SELECT 字段列表
FROM 表
WHERE selectcriteria
GROUP BY groupfieldlist
[HAVING groupcriteria]
包含 HAVING 子句的 SELECT 语句由以下部分组成:
| 部分 | 说明 |
|---|---|
| fieldlist | 要与任何字段名别名、SQL 聚合函数、选择谓词(ALL、DISTINCT、DISTINCTROW 或 TOP)或其他 SELECT 语句选项一起进行检索的字段的名称。 |
| table | 从中检索记录的表的名称。 |
| selectcriteria | 选择条件。 如果语句包含 WHERE 子句,则在将 WHERE 条件应用于记录之后,Microsoft Access 数据库引擎对值进行分组。 |
| groupfieldlist | 用来对记录进行分组的最多 10 个字段的名称。 groupfieldlist 中字段名称的顺序确定了从最高到最低的分组级别。 |
| groupcriteria | 表达式,确定要显示哪些分组记录。 |
说明
HAVING 是可选的。
HAVING 与 WHERE 相似,用于确定要选择哪些记录。 用 GROUP BY 对记录分组之后,HAVING 将确定显示哪些记录:
SELECT CategoryID,
Sum(UnitsInStock)
FROM Products
GROUP BY CategoryID
HAVING Sum(UnitsInStock) > 100 And Like "BOS*";
HAVING 子句可以包含多达 40 个由逻辑运算符(例如 And 和 Or)链接的表达式。