1. 程式人生 > >sql中的case函式

sql中的case函式

功能

計算條件列表,並返回多個可能的結果表示式之一。可以在sql中對欄位進行簡單的處理。

語法

case語句有簡單表示式和搜尋表示式兩種用法,格式如下:
--Simple CASE expression: 
CASE input_expression   
     WHEN when_expression THEN result_expression [ ...n ]   
     [ ELSE else_result_expression ]   
END   
--Searched CASE expression:  
CASE  
     WHEN Boolean_expression THEN
result_expression [ ...n ] [ ELSE else_result_expression ] END

CASE 簡單表示式的工作方式如下:將第一個表示式與每個 WHEN 子句中的表示式進行比較,以確定它們是否等效。 如果這些表示式等效,將返回 THEN 子句中的表示式。

  • 僅用於等同性檢查。
  • 按指定的順序計算每個 WHEN 子句的 input_expression = when_expression。
  • 返回首個 input_expression = when_expression 的計算結果為 TRUE 的 result_expression。
  • 如果 input_expression = when_expression 的計算結果均不為 TRUE,則在指定了 ELSE 子句的情況下, SQL Server 資料庫引擎 將返回 else_result_expression;若沒有指定 ELSE 子句,則返回 NULL 值。

CASE 搜尋表示式:

  • 按指定順序對每個 WHEN 子句的 Boolean_expression 進行計算。
  • 返回首個 Boolean_expression 的計算結果為 TRUE 的 result_expression。
  • 如果 Boolean_expression 的計算結果均不為 TRUE,則在指定了 ELSE 子句的情況下, 資料庫引擎 將返回 else_result_expression;若沒有指定 ELSE 子句,則返回 NULL 值。

示例

簡單表示式:
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

搜尋表示式:

CASE
    WHEN MIN(value) <= 0 THEN 0   
    WHEN MAX(1/value) >= 100 THEN 1   
END