CASE (Entity SQL)
Vyhodnotí sadu Boolean
výrazů k určení výsledku.
Syntaxe
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Argumenty
n
Je zástupný symbol, který označuje, že lze použít více klauzulí WHEN Boolean_expression
THEN result_expression
.
PAK result_expression
je výraz vrácen při Boolean_expression
vyhodnocení na true
. result expression
je libovolný platný výraz.
ELSE else_result_expression
Je výraz vrácen, pokud se nevyhodnotí true
žádná operace porovnání . Pokud tento argument vynecháte a nevyhodnotí se true
žádná operace porovnání, vrátí funkce CASE hodnotu null. else_result_expression
je libovolný platný výraz. Datové typy else_result_expression
a všechny result_expression
musí být stejné nebo musí být implicitní převod.
KDYŽ Boolean_expression
je Boolean
výraz vyhodnocen při použití prohledávaného formátu CASE. Boolean_expression
je libovolný platný Boolean
výraz.
Návratová hodnota
Vrátí typ nejvyšší priority ze sady typů v sadě result_expression
typů v a volitelné else_result_expression
.
Poznámky
Výraz případu Entity SQL se podobá výrazu případu Jazyka Transact-SQL. Pomocí výrazu case vytvoříte řadu podmíněných testů, abyste zjistili, který výraz vrátí odpovídající výsledek. Tato forma výrazu case se vztahuje na řadu jednoho nebo více Boolean
výrazů k určení správného výsledného výrazu.
Funkce CASE vyhodnocuje Boolean_expression
pro každou klauzuli WHEN v zadaném pořadí a vrátí první result_expression
Boolean_expression
klauzuli, která se vyhodnotí jako true
. Zbývající výrazy se nevyhodnocují. Pokud se hodnota nehodnotí Boolean_expression
true
, databázový stroj vrátí else_result_expression
hodnotu, pokud je zadaná klauzule ELSE, nebo hodnotu null, pokud není zadána žádná klauzule ELSE.
Příkaz CASE nemůže vrátit vícemnožinu.
Příklad
Následující dotaz Entity SQL používá výraz CASE k vyhodnocení sady Boolean
výrazů k určení výsledku. Dotaz je založený na prodejním modelu AdventureWorks. Chcete-li tento dotaz zkompilovat a spustit, postupujte takto:
Postupujte podle pokynů v části Postupy: Provedení dotazu, který vrací výsledky PrimitiveType.
Jako argument metody
ExecutePrimitiveTypeQuery
předejte následující dotaz:
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END