CASE WHEN 是 SQL 中的一個條件表達式,它可以在 SELECT、UPDATE 和 WHERE 子句中使用
SELECT customer_id, first_name, last_name,
CASE
WHEN total_orders >= 10 THEN 'Frequent Customer'
WHEN total_orders < 10 AND total_orders > 0 THEN 'Occasional Customer'
ELSE 'New Customer'
END AS customer_type
FROM customers;
這個查詢會返回一個包含客戶類型的結果集。根據客戶的訂單數量,我們將客戶分為“常客”、“偶爾客戶”和“新客戶”。
UPDATE products
SET price = CASE
WHEN price < 100 THEN price * 1.1
WHEN price >= 100 AND price < 500 THEN price * 1.05
ELSE price * 1.02
END;
這個查詢會更新產品表中的價格。根據產品的當前價格,我們對價格進行不同比例的調整。
SELECT employee_id, first_name, last_name, salary
FROM employees
WHERE salary > (
CASE
WHEN department_id = 1 THEN 50000
WHEN department_id = 2 THEN 60000
ELSE 40000
END
);
這個查詢會返回一個包含員工 ID、名字、姓氏和薪水的結果集,其中薪水高于部門平均水平。我們根據部門 ID 設置了不同的薪水閾值。
通過在復雜查詢中使用 CASE WHEN,你可以根據多種條件靈活地處理數據。這有助于提高查詢的可讀性和可維護性,同時也能提高查詢效率。