Skip to main content

WHERE 子句

WHERE 子句指定应用于数据的条件或过滤器。这样,您就可以只选择特定的数据子集。WHERE 子句紧跟在 FROM 子句之后使用。

以下是带有可选 WHERE 子句的 SELECT 语句的基本句法:

SELECT column1, column2, columnN
FROM table_name
WHERE condition

在此,condition 是指任何求值结果为布尔类型的表达式。任何不满足此条件的行都将从输出中移除。如果将实际行值替换为变量引用后返回 true,则该行满足条件。条件表达式中允许使用子查询。

WHERE 子句的基本示例:

-- 计算每个部门每个职务的平均工资
-- 仅筛选结果集,包括平均工资超过 50000 美元的部门和职务
SELECT department, job_title, AVG(salary)
FROM employees
WHERE salary >= 50000
GROUP BY department, job_title;

查询结果是一个包含部门、职位和平均工资列的表格。每一行代表某部门某职位的平均工资,并且只返回平均工资超过 50000 美元的组。

请注意,本例中的 WHERE 子句位于 GROUP BY 子句之前,因为 WHERE 子句在执行聚合之前过滤表中的行。相反,HAVING 子句在执行聚合之后过滤数据。