溫馨提示×

Case When在復雜查詢中的運用

sql
小樊
106
2024-08-30 16:57:24
欄目: 編程語言

CASE WHEN 是 SQL 中的一個條件表達式,它可以在 SELECT、UPDATE 和 WHERE 子句中使用

  1. 在 SELECT 子句中使用 CASE WHEN:
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;

這個查詢會返回一個包含客戶類型的結果集。根據客戶的訂單數(shù)量,我們將客戶分為“??汀?、“偶爾客戶”和“新客戶”。

  1. 在 UPDATE 子句中使用 CASE WHEN:
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;

這個查詢會更新產品表中的價格。根據產品的當前價格,我們對價格進行不同比例的調整。

  1. 在 WHERE 子句中使用 CASE WHEN:
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,你可以根據多種條件靈活地處理數(shù)據。這有助于提高查詢的可讀性和可維護性,同時也能提高查詢效率。

0