CASE (SQL Server Compact)

評估條件清單,然後傳回多個可能的結果運算式之一。

CASE 有兩種格式:

  • 簡單的 CASE 功能會將運算式與一組簡單的運算式比對,以判斷其結果。

  • 搜尋的 CASE 函數會評估一組布林運算式來判斷其結果。

兩種格式都支援選擇性 ELSE 引數。

語法

CASE input_expression 
    WHEN when_expression THEN result_expression 
        [ ...n ] 
    [ 
        ELSE else_result_expression 
    ] 
END 

CASE
    WHEN Boolean_expression THEN result_expression 
        [ ...n ] 
    [ 
        ELSE else_result_expression 
    ] 
END

引數

  • input_expression
    使用簡單 CASE 格式時所評估的運算式。此 input_expression 引數是 Microsoft SQL Server Compact 中任何有效的運算式。

  • WHEN when_expression
    使用簡單 CASE 格式時,input_expression 所比對的簡單運算式。此 when_expression 引數是任何有效的 SQL Server 運算式。input_expression 的資料類型及各個 when_expression 必須相同,或者必須為隱含轉換。

  • n
    一個預留位置,指出可以使用多個 WHEN when_expression THEN result_expression 子句,也可以使用多個 Boolean_expression THEN result_expression 子句。

  • THEN result_expression
    當 input_expression 等於 when_expression 評估為 TRUE 或者 Boolean_expression 評估為 TRUE 時所傳回的運算式。此 result expression 引數是任何有效的 SQL Server 運算式。

  • ELSE else_result_expression
    如果沒有任何比較運算評估為 TRUE 時所傳回的運算式。如果省略此引數,並且沒有任何比較運算評估為 TRUE,則 CASE 就會傳回 NULL。此 else_result_expression 引數是任何有效的 SQL Server 運算式。else_result_expression 的資料類型及任何 result_expression 必須相同,或者必須為隱含轉換。

  • WHEN Boolean_expression
    使用搜尋的 CASE 格式時所評估的布林運算式。Boolean_expression 是任何有效的布林運算式。

結果類型

從 result_expressions 及選擇性使用的 else_result_expression 型別集傳回最高優先順序的型別。

範例

以下範例會傳回下訂單時所用的貨運方式。

SELECT [Ship Via], CASE [Ship Via]
    WHEN 1 THEN 'A.Datum'
    WHEN 2 THEN 'Contoso'
    WHEN 3 THEN 'Consolidated Messenger'
        ELSE 'Unknown'
        END
FROM Orders