WHERE 子句

指定 FROM 子句列出的表中受 SELECT、UPDATE 或 DELETE 语句影响的记录。

语法

SELECT fieldlist
FROM tableexpression
WHERE criteria

包含 WHERE 子句的 SELECT 语句由以下部分组成:

部分

说明

fieldlist

要与任何字段名别名、选择谓词(ALL、DISTINCT、DISTINCTROW 或 TOP)或其他 SELECT 语句选项一起进行检索的字段的名称。

tableexpression

从中检索数据的表的名称。

criteria

要包含在查询结果中的记录必须满足的表达式。


备注

Microsoft Access 数据库引擎选择满足 WHERE 字句中列出的条件的记录。如果不指定 WHERE 子句,查询将返回表中的所有行。如果在查询中指定多个表,且未包含 WHERE 子句或 JOIN 子句,查询将生成表的 笛卡尔乘积。

WHERE 是可选的,但包含在内时,需在 FROM 之后。例如,可以选择销售部门中的所有员工(WHERE Dept = 'Sales')或年龄介于 18 至 30 岁之间(WHERE Age Between 18 And 30)的所有客户。

如果不使用 JOIN 字句对多个表执行 SQL 联接操作,则不会更新生成的记录集对象。

WHERE 与 HAVING 相似。WHERE 确定要选择的记录。同样,使用 GROUP BY 对记录分组之后,HAVING 确定要显示的记录。

使用 WHERE 子句清除不想使用 GROUP BY 子句分组的记录。

使用多种表达式确定 SQL 语句返回的记录。例如,以下 SQL 语句薪酬超过 21,000 美元的所有员工:

SELECT LastName, Salary FROM Employees WHERE Salary > 21000;

WHERE 子句可包含最多 40 个由逻辑运算符(例如 AndOr)链接的表达式。

当输入的字段名称包含空格或标点时,请在名称两边加上方括号 ([ ])。例如,客户信息表可能包括有关特定客户的信息:

SELECT [Customer’s Favorite Restarant]

指定 criteria 参数时,日期文本必须采用美国格式,即使正在使用的 Microsoft Access 数据库引擎不是美国版本。例如,1996 年 5 月 10 日在英国写作 10/5/96,在美国写作 5/10/96。请确保在日期文本前后加上数字符号 (#),如下例所示。

若要在英国数据库中查找日期为 1996 年 5 月 10 日的记录,必须使用以下 SQL 语句:

SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;

也可以使用 DateValue 函数,该函数了解由 Microsoft Windows® 建立的国际设置。例如,对美国数据库使用以下代码:

SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');

对英国数据库使用以下代码:

SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');

注意: 如果在条件字符串中引用的列属于 GUID 类型,则条件表达式使用的语法稍有不同:

WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

请确保包含所示的嵌套大括号和连字符。



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

此信息是否有帮助?

谢谢您的反馈!

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

×