Gibt es eine Möglichkeit, den Wert aus dem CASE WHEN-Test als eines der Ergebnisse zu verwenden, ohne die SELECT-Anweisung zweimal zu schreiben (da sie lang und unordentlich sein kann)? Zum Beispiel: wie gutGibt es eine Möglichkeit, die CASE WHEN Test eines der Ergebnisse statt zweimal zu machen?
SELECT id,
CASE WHEN (
(SELECT MAX(value) FROM my_table WHERE other_value = 1) IS NOT NULL
)
THEN (
SELECT (MAX(value) FROM my_table WHERE other_value = 1
)
ELSE 0
END AS max_value
FROM other_table
Gibt es eine Möglichkeit ich das Ergebnis des ersten Laufs der SELECT-Anweisung (für den Test) als THEN Wert verwenden kann? Ich habe versucht, "AS max_value" nach dem ersten SELECT, aber es gab mir einen SQL-Fehler.
Update: Whoops, wie Tom H. darauf hingewiesen, ich habe das "IS NOT NULL" in meiner ursprünglichen Frage vergessen.
Danke, das war die eigentliche Antwort auf meine Frage, obwohl die COALESCE-Funktion in Tom Hs Antwort ein saubererer Weg ist, dorthin zu gelangen, wo ich eigentlich hin wollte. Ich dachte nicht, sie zuerst in einer Unterabfrage zu definieren. – Charles