Sdílet prostřednictvím


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:

  1. Postupujte podle pokynů v části Postupy: Provedení dotazu, který vrací výsledky PrimitiveType.

  2. Jako argument metody ExecutePrimitiveTypeQuery předejte následující dotaz:

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

Viz také