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_expression
的 true
。 此時,系統就不會評估其餘運算式。 如果沒有任何 Boolean_expression
評估為 true
,Database Engine 就會傳回 else_result_expression
(如果指定了 ELSE 子句) 或 null 值 (如果沒有指定任何 ELSE 子句)。
CASE 陳述式無法傳回多重集 (Multiset)。
範例
下列 Entity SQL 查詢會使用 CASE 運算式來評估一組 Boolean
運算式,以便判斷結果。 此查詢是根據 AdventureWorks Sales Model。 若要編譯及執行此查詢,請遵循以下步驟:
遵循操作說明:執行可傳回 PrimitiveType 結果的查詢中的程序操作。
將下列查詢當成引數,傳遞至
ExecutePrimitiveTypeQuery
方法:
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END