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