計算條件列表,並返回多個可能的結果表達式之一。數據庫
case具備兩種格式:express
這兩種方式,都支持可選的 else參數,大部分狀況下是能夠實現相同的功能。
case可用於容許使用有效表達式的任意語句或子句, 例如,能夠在 select、update、delete和 set等語句以及 select_list、in、where、order by和 having等子句中使用 Case。函數
select spa
case input_expressionip
when when_expression then result_expressioninput
when when_expression then result_expressionit
......io
else else_result_expressionend table
from class
databasename.dbo.tablename
select
case
when boolean_expression then result_expression
when boolean_expression then result_expression
......
else else_result_expressionend end
from
databasename.dbo.tablename
input_expression
使用簡單 case格式時計算的表達式。 input_expression 是任何有效的表達式 。
when when_expression
使用簡單 case格式時要與 input_expression 進行比較的簡單表達式 。 when_expression 是任何有效的表達式 。input_expression 及每一個 when_expression 的數據類型必須相同或必須是隱式轉換的數據類型 。
then result_expression
當 input_expression = when_expression 的計算結果爲 true時,或 boolean_expression 的計算結果爲 true時返回的表達式 。 result expression 是任何有效的表達式 。
else else_result_expression
比較運算計算結果不爲 true 時返回的表達式。 若是忽略此參數且比較運算計算結果不爲 true,則 case返回 null。 else_result_expression 是任何有效的表達式 。 else_result_expression 及任何 result_expression 的數據類型必須相同或必須是隱式轉換的數據類型 。
when boolean_expression
使用 case 搜索格式時所計算的布爾表達式。 boolean_expression 是任何有效的布爾表達式 。
從 result_expressions 和可選 else_result_expression 的類型集中返回優先級最高的類型 。
case 簡單表達式:
case 簡單表達式的工做方式以下:將第一個表達式與每一個 when 子句中的表達式進行比較,以肯定它們是否等效。 若是這些表達式等效,將返回 then 子句中的表達式。
case 搜索表達式:
簡單case函數注重簡潔,可是它只適用於這種單字段的單值比較,而case搜索函數的優勢在於適用於全部比較(包括多值比較)的狀況。