CASE (Entity SQL)

評估一組 Boolean 運算式,以便判斷結果。

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

引數

  • n
    這是一個預留位置,指出可以使用多個 WHEN when_expression THEN result_expression 子句,或多個 WHEN Boolean_expression THEN result_expression 子句。
  • THEN result_expression
    是在 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 運算式。Boolean_expression 是任何有效的 Boolean 運算式。

傳回值

result_expression 和選擇性 else_result_expression 的型別集中,傳回優先順序最高的型別。

備註

Entity SQL CASE 運算式與 Transact-SQL CASE 運算式很相似。您可以使用 CASE 運算式來進行一連串條件式測試,以便判斷哪一個運算式會產生適當的結果。這種 CASE 運算式形式會套用至一個或多個 Boolean 運算式,以便判斷正確的結果運算式。

CASE 函式會按照指定的順序針對每個 WHEN 子句評估 Boolean_expression,然後傳回評估為 true 之第一個 Boolean_expressionresult_expression。如果沒有任何 Boolean_expression 評估為 true,Database Engine 就會傳回 else_result_expression (如果指定了 ELSE 子句) 或 null 值 (如果沒有指定任何 ELSE 子句)。

CASE 陳述式 (Statement) 無法傳回多重集 (Multiset)。

範例

下列 Entity SQL 查詢會使用 CASE 運算式來評估一組 Boolean 運算式,以便判斷結果。此查詢是根據 AdventureWorks Sales Model。若要編譯及執行此查詢,請遵循以下步驟:

  1. 按照 HOW TO:執行可傳回 PrimitiveType 結果的查詢 (EntityClient) 中的程序進行。

  2. 將下列查詢當成引數傳遞至 ExecutePrimitiveTypeQuery 方法:

CASE WHEN AVG({25,12,11}) < 100 THEN TRUE ELSE FALSE END

輸出如下所示:

Value: True

另請參閱

參考

ELSE (Entity SQL)
WHEN (Entity SQL)
THEN (Entity SQL)
SELECT (Entity SQL)

概念

Entity SQL 參考