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 的型別集中,傳回優先順序最高的型別。
備註
實體 SQL CASE 運算式與 Transact-SQL CASE 運算式很相似。您可以使用 CASE 運算式來進行一連串條件式測試,以便判斷哪一個運算式會產生適當的結果。這種 CASE 運算式形式會套用至一個或多個 Boolean 運算式,以便判斷正確的結果運算式。
CASE 函式會按照指定的順序針對每個 WHEN 子句評估 Boolean_expression,然後傳回評估為 true 之第一個 Boolean_expression 的 result_expression。如果沒有任何 Boolean_expression 評估為 true,Database Engine 就會傳回 else_result_expression (如果指定了 ELSE 子句) 或 null 值 (如果沒有指定任何 ELSE 子句)。
CASE 陳述式 (Statement) 無法傳回多重集 (Multiset)。
範例
下列 Entity SQL 查詢會使用 CASE 運算式來評估一組 Boolean 運算式,以便判斷結果。此查詢是根據 AdventureWorks Sales Model。若要編譯及執行此查詢,請遵循以下步驟:
將下列查詢當成引數傳遞至
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)