在PostgreSQL中,可以使用CASE WHEN
语句来进行条件查询。CASE WHEN
是一种表达式,它允许你根据一个或多个条件返回不同的值。以下是一个基本的CASE WHEN
语句的语法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result_default
END AS column_name
在这个结构中:
condition1, condition2, ...
是要测试的条件。result1, result2, ...
是在满足相应条件时要返回的结果。ELSE
子句是可选的,用于定义当所有条件都不满足时要返回的值。AS column_name
是可选的,用于给结果列命名。下面是一个具体的例子。假设我们有一个名为employees
的表,其中包含id
, name
, salary
和department
等列。我们想要找出每个员工的薪水是否高于平均薪水,并据此返回不同的消息。
SELECT
id,
name,
salary,
department,
CASE
WHEN salary > (SELECT AVG(salary) FROM employees) THEN '高于平均薪水'
ELSE '低于或等于平均薪水'
END AS salary_status
FROM
employees;
在这个查询中,我们首先计算了employees
表中所有员工薪水的平均值。然后,我们使用CASE WHEN
语句来检查每个员工的薪水是否高于这个平均值,并返回相应的消息。最后,我们将这个消息作为salary_status
列返回。