溫馨提示×

在PostgreSQL中怎樣使用CASE WHEN

小樊
82
2024-10-10 02:29:40
欄目: 云計算

在PostgreSQL中,可以使用CASE WHEN語句來進行條件查詢。CASE WHEN是一種表達式,它允許你根據(jù)一個或多個條件返回不同的值。以下是一個基本的CASE WHEN語句的語法:

CASE 
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result_default
END AS column_name

在這個結(jié)構(gòu)中:

  • condition1, condition2, ... 是要測試的條件。
  • result1, result2, ... 是在滿足相應(yīng)條件時要返回的結(jié)果。
  • ELSE 子句是可選的,用于定義當(dāng)所有條件都不滿足時要返回的值。
  • AS column_name 是可選的,用于給結(jié)果列命名。

下面是一個具體的例子。假設(shè)我們有一個名為employees的表,其中包含id, name, salarydepartment等列。我們想要找出每個員工的薪水是否高于平均薪水,并據(jù)此返回不同的消息。

SELECT 
    id, 
    name, 
    salary, 
    department,
    CASE 
        WHEN salary > (SELECT AVG(salary) FROM employees) THEN '高于平均薪水'
        ELSE '低于或等于平均薪水'
    END AS salary_status
FROM 
    employees;

在這個查詢中,我們首先計算了employees表中所有員工薪水的平均值。然后,我們使用CASE WHEN語句來檢查每個員工的薪水是否高于這個平均值,并返回相應(yīng)的消息。最后,我們將這個消息作為salary_status列返回。

0