在Oracle中,您可以使用CASE
語句來創建條件表達式。CASE
語句允許您根據一個或多個條件對數據進行分類,并返回相應的值。以下是一個基本的CASE
語句的語法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END;
在這個結構中:
condition1
, condition2
, … 是要測試的條件。result1
, result2
, … 是當條件為真時返回的值。default_result
是當所有條件都為假時返回的值。下面是一個具體的例子。假設我們有一個名為employees
的表,其中包含department
(部門)和salary
(薪水)兩個字段。我們想要找出每個部門的平均薪水,但只顯示那些平均薪水高于整個公司平均薪水的部門。
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > (
SELECT AVG(salary) FROM employees
);
在這個查詢中,我們使用了子查詢來計算整個公司的平均薪水,并將其與每個部門的平均薪水進行比較。但是,這個查詢并沒有使用條件表達式。要使用條件表達式,我們可以稍微修改一下查詢:
SELECT department,
AVG(salary) AS average_salary,
CASE
WHEN AVG(salary) > (SELECT AVG(salary) FROM employees) THEN 'High'
ELSE 'Low'
END AS salary_level
FROM employees
GROUP BY department;
在這個修改后的查詢中,我們添加了一個CASE
表達式來根據部門的平均薪水是否高于整個公司的平均薪水來標記該部門的薪水水平。如果部門的平均薪水高于整個公司的平均薪水,則salary_level
列將顯示’High’;否則,它將顯示’Low’。