sql中的case函式
阿新 • • 發佈:2018-12-03
功能
計算條件列表,並返回多個可能的結果表示式之一。可以在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