CASE (Entity SQL)

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

語法

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

引數

n 是表示可以使用多個 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 ,然後傳回評估為 result_expression 之第一個 Boolean_expressiontrue。 此時,系統就不會評估其餘運算式。 如果沒有任何 Boolean_expression 評估為 true,Database Engine 就會傳回 else_result_expression (如果指定了 ELSE 子句) 或 null 值 (如果沒有指定任何 ELSE 子句)。

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

範例

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

  1. 遵循操作說明:執行可傳回 PrimitiveType 結果的查詢中的程序操作。

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

CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END

另請參閱