使用 CASE

CASE 運算式用於評估多個條件,並針對每個條件傳回一個值。例如,它可依資料行的值來顯示不同的值。資料中的這種變更僅屬暫時,並不會將資料永久變更。

CASE 運算式由以下構成:

  • CASE 關鍵字。

  • 要轉換的資料行名稱。

  • WHEN 子句指定要搜尋的運算式,THEN 指定要取代的運算式。

  • 如果沒有比較運算評估為 TRUE,則傳回定義運算式的選擇性 ELSE 子句。

  • END 關鍵字。

  • 選擇性的 AS 子句,定義 CASE 運算式的別名。

CASE 運算式的常見用法是以較具可讀性的值取代程式碼或縮寫。下列範例使用 CASE 函數來變更產品線類別的顯示方式,讓它們更好理解。

USE AdventureWorks;
GO
SELECT   ProductNumber, Category =
      CASE ProductLine
         WHEN 'R' THEN 'Road'
         WHEN 'M' THEN 'Mountain'
         WHEN 'T' THEN 'Touring'
         WHEN 'S' THEN 'Other sale items'
         ELSE 'Not for sale'
      END,
   Name
FROM Production.Product
ORDER BY ProductNumber;
GO

CASE 的另一個用法是將資料分類。下列查詢使用 CASE 函數來將價格分類。

USE AdventureWorks;
GO
SELECT   ProductNumber, Name, 'Price Range' = 
      CASE 
         WHEN ListPrice =  0 THEN 'Mfg item - not for resale'
         WHEN ListPrice < 50 THEN 'Under $50'
         WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
         WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
         ELSE 'Over $1000'
      END
FROM Production.Product
ORDER BY ProductNumber ;
GO

如需其他範例,請參閱<CASE (Transact-SQL)>。