Der CASE
Ausdruck wird zu einem Wert ausgewertet, d. h. er wird verwendet, um basierend auf einer Bedingung zu einem Ergebnis aus einer Reihe von Ergebnissen zu evaluieren.
Beispiel:
SELECT CASE
WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`
Der CASE
Die Anweisung führt eine Anweisung aus einer Reihe von Anweisungen aus, basierend auf einer bestimmten Bedingung.
Beispiel:
CASE
WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE
Sie sehen, wie ähnlich sie sind, aber die Anweisung nicht zu einem Wert auswerten und kann eigenständig verwendet werden, während der Ausdruck Teil eines Ausdrucks sein muss, z. eine Anfrage oder eine Aufgabe. Sie können die Anweisung nicht in einer Abfrage verwenden, da eine Abfrage keine Anweisungen enthalten kann, sondern nur Ausdrücke, die zu etwas ausgewertet werden müssen (die Abfrage selbst ist in gewisser Weise eine Anweisung), z. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE
macht keinen Sinn.