SQL CASE

條件式輸出

CASE 可依條件回傳不同文字,常用於報表分類、標記與排序。它能把原始數值轉成更容易理解的商務語意。

Example 1 - 價格分群

SELECT ProductName, Price,
       CASE
         WHEN Price >= 100 THEN '高價'
         WHEN Price >= 50 THEN '中價'
         ELSE '平價'
       END AS 價格區間
FROM Products;

Example 2 - 客戶地區標記

SELECT CustomerName, Country,
       CASE
         WHEN Country IN ('Germany','France','UK') THEN 'Europe'
         ELSE 'Other'
       END AS RegionLabel
FROM Customers;

Example 3 - CASE 用於排序

SELECT ProductName, UnitsInStock
FROM Products
ORDER BY CASE WHEN UnitsInStock = 0 THEN 1 ELSE 0 END,
         UnitsInStock ASC;

Example 4 - 結合聚合報表

SELECT CategoryID,
       SUM(CASE WHEN Price >= 100 THEN 1 ELSE 0 END) AS PremiumCount
FROM Products
GROUP BY CategoryID;