CASE (Entity SQL)
Wertet eine Reihe von Boolean
-Ausdrücken aus, um das Ergebnis zu bestimmen.
Syntax
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Argumente
n
ist ein Platzhalter, der angibt, dass mehrere WHEN Boolean_expression
THEN result_expression
-Klauseln verwendet werden können.
THEN result_expression
ist der zurückgegebene Ausdruck, wenn Boolean_expression
als true
ausgewertet wird. result expression
ist ein beliebiger gültiger Ausdruck.
ELSE else_result_expression
ist der Ausdruck, der zurückgegeben wird, wenn keine Vergleichsoperation als true
ausgewertet wird. Wenn dieses Argument nicht angegeben wird und keine Vergleichsoperation true
ergibt, gibt die CASE-Funktion null zurück. else_result_expression
ist ein beliebiger gültiger Ausdruck. Die Datentypen von else_result_expression
und allen result_expression
-Ausdrücken müssen gleich sein, oder es muss eine implizite Konvertierung vorliegen.
WHEN Boolean_expression
ist der Boolean
-Ausdruck, der ausgewertet wird, wenn das gesuchte CASE-Format verwendet wird. Boolean_expression
ist ein beliebiger gültiger Boolean
-Ausdruck.
Rückgabewert
Gibt den Typ mit der höchsten Priorität in result_expression
und im optionalen else_result_expression
zurück.
Bemerkungen
Der CASE-Ausdruck von Entity SQL ähnelt dem CASE-Ausdruck von Transact-SQL. Mit dem CASE-Ausdruck wird eine Reihe von Bedingungen geprüft, um zu ermitteln, welcher Ausdruck das passende Ergebnis ergibt. Diese Form des CASE-Ausdrucks ist für einen oder eine Reihe von Boolean
-Ausdrücken geeignet, um den korrekten Ergebnisausdruck zu ermitteln.
Die CASE-Funktion wertet Boolean_expression
für jede WHEN-Klausel in der angegebenen Reihenfolge aus und gibt result_expression
des ersten Boolean_expression
zurück, der true
ergibt. Die übrigen Ausdrücke werden nicht ausgewertet. Ergibt kein Boolean_expression
den Wert true
, gibt die Datenbank-Engine den else_result_expression
-Ausdruck zurück, sofern eine ELSE-Klausel angegeben wurde, oder einen NULL-Wert, wenn keine ELSE-Klausel angegeben wurde.
Eine CASE-Anweisung kann keinen multiset-Wert zurückgeben.
Beispiel
In der folgenden Entity SQL-Abfrage wird der CASE-Ausdruck zur Auswertung eines Satzes von Boolean
-Ausdrücken verwendet, um das Ergebnis zu bestimmen. Diese Abfrage beruht auf dem "AdventureWorks Sales"-Modell. Führen Sie folgende Schritte aus, um diese Abfrage zu kompilieren und auszuführen:
Verwenden Sie die Vorgehensweise unter Ausführen einer Abfrage, die PrimitiveType-Ergebnisse zurückgibt.
Übergeben Sie die folgende Abfrage als Argument an die
ExecutePrimitiveTypeQuery
-Methode:
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END