温馨提示×

在PostgreSQL中怎样使用CASE WHEN

小樊
347
2024-10-10 02:29:40
栏目: 云计算

在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, salarydepartment等列。我们想要找出每个员工的薪水是否高于平均薪水,并据此返回不同的消息。

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列返回。

0