WHERE 子句

FROM 子句中的列表中指定哪些记录受到 SELECT, UPDATE, 或 DELETE 语句的影响。

语法

SELECT 字段表
    FROM tableexpression
    WHERE标准

包含 WHERE 子句的SELECT 语句具有以下几个部分:

部分 说明
fieldlist 要和任何字段名别名, 选择断定 (ALL, DISTINCT, DISTINCTROW, TOP), 或其他 SELECT 语句 选择一起检索的字段名称。
tableexpression 表的名称,可从这些表中获取数据。
criteria 使查询结果中能包括记录的表达式

说明

Microsoft Jet数据库引擎选择符合 WHERE 子句所列条件的记录。.如果未指定 WHERE 子句,则查询将返回表中的所有行。如果你在查询中指定了多于一个的表,且没包括 WHERE 子句 或 JOIN 子句, 你的查询会启动表的 Cartesian产品

WHERE 是可选的,但在使用时必须接在 FROM 之后。例如,可在销售部门选择全部雇员(WHERE Dept = 'Sales')或年龄在 18 岁 至 30 岁之间(WHERE Age Between 18 And 30)的全部客户。

如果未在多重表中使用 JOIN 子句完成 SQL 联结运算,则不能更新所得到的 Recordset 对象。

WHERE 与 HAVING 相近。WHERE 决定应选择哪个记录。与此相似,一旦用 GROUP BY 将记录分组,则 HAVING 将决定显示哪个记录。

使用 WHERE 子句可消除您不想用 GROUP BY 子句进行分组的记录。

用多种不同的表达式来确定 SQL 语句将返回哪些字段。例如,下行 SQL 语句将选择薪金超过 $21,000 的所有雇员:

SELECT LastName, Salary

FROM Employees

WHERE Salary > 21000;

WHERE 子句最多可包含 40 个表达式,这些表达式由诸如 And Or 之类的逻辑操作符链接。

当您输入的字段名包含空格或标点符号时,请用括号 ([ ]) 将它括在其中。例如,一个客户信息表可能包含有关特定客户的信息:

SELECT [Customer’s Favorite Restarant]

当您指定 criteria 参数时,即使没有使用 U.S. 版本的 Microsoft Jet 数据库引擎,也必须用 U.S. 格式表示日期文字。例如,在英国将 May 10, 1996 写成 10/5/96,而在美国却写成 5/10/96。必须确保将日期文字与数字符号 (#) 括起来,如下例所示。

为在英国的数据库中查找日期为 May 10, 1996 的记录,必须使用下列 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}}

必须确保将以上所示嵌套大括弧和连字符都包括在内。


请参阅
ALL、DISTINCT、DISTINCTROW、TOP 谓词 LEFT JOIN, RIGHT JOIN 运算 (Microsoft Jet SQL)
DELETE 语句 (Microsoft Jet SQL) ORDER BY 子句 (Microsoft Jet SQL)
FROM 子句 (Microsoft Jet SQL) SELECT 语句 (Microsoft Jet SQL)
GROUP BY 子句 (Microsoft Jet SQL) SELECT...INTO 语句(Microsoft Jet SQL)
HAVING 子句 (Microsoft Jet SQL) SQL 合计函数(SQL)
IN 子句(Microsoft Jet SQL) UPDATE 语句 (Microsoft Jet SQL)
INNER JOIN 运算 (Microsoft Jet SQL)  

示例

WHERE 子句 示例