使用 CASE

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

CASE 運算式包含:

  • CASE 關鍵字。
  • 要轉換的資料行名稱。
  • WHEN 子句 (指定要搜尋的運算式) 和 THEN 子句 (指定要用來取代的運算式)。
  • 選擇性 ELSE 子句,其中定義沒有比較運算的評估結果是 TRUE 時,所傳回的運算式。
  • 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)>。

請參閱

其他資源

CASE (Transact-SQL)
NULLIF (Transact-SQL)
COALESCE (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助