CASE (Entity SQL)
Wertet eine Reihe von Boolean-Ausdrücken aus, um das Ergebnis zu bestimmen.
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
Argumente
- n
Ein Platzhalter, der anzeigt, dass mehrere WHEN when_expression THEN result_expression-Klauseln oder mehrere WHEN Boolean_expression THEN result_expression-Klauseln verwendet werden können.
- THEN result_expression
Der Ausdruck, der zurückgegeben wird, wenn Boolean_expression dem Wert true entspricht. result expression ist ein beliebiger gültiger Ausdruck.
- ELSE else_result_expression
Der Ausdruck, der zurückgegeben wird, wenn keine Vergleichsoperation true ergibt. Wenn dieses Argument nicht angegeben wird und keine Vergleichsoperation true ergibt, gibt die CASE-Funktion NULL zurück. else_result_expression kann jeder gültige Ausdruck sein. 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
Der Boolean-Ausdruck, der ausgewertet wird, wenn das komplexe CASE-Format verwendet wird. Boolean_expression kann jeder gültige Boolean-Ausdruck sein.
Rückgabewert
Gibt den Typ mit der höchsten Priorität in result_expression und im optionalen else_result_expression zurück.
Hinweise
Der CASE-Ausdruck von Entity SQL ähnelt dem 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. Ergibt kein Boolean_expression den Wert true, gibt das Datenbankmodul 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 einer Reihe von Boolean-Ausdrücken verwendet, um das Ergebnis zu bestimmen. Die Abfrage basiert auf dem "AdventureWorks Sales"-Modell. Führen Sie folgende Schritte aus, um diese Abfrage zu kompilieren und auszuführen:
Verwenden Sie das Verfahren unter Gewusst wie: Ausführen einer Abfrage, die PrimitiveType-Ergebnisse zurückgibt (EntityClient).
Übergeben Sie die folgende Abfrage als Argument an die
ExecutePrimitiveTypeQuery
-Methode:
CASE WHEN AVG({25,12,11}) < 100 THEN TRUE ELSE FALSE END
Die Ausgabe wird im Folgenden dargestellt:
Value: True
Siehe auch
Verweis
ELSE (Entity SQL)
WHEN (Entity SQL)
THEN (Entity SQL)
SELECT (Entity SQL)