Ich brauche eine CASE-Anweisung, um eine Liste von Strings zurückzugeben, aber ich habe einige Syntaxprobleme. Das resultierende SQL sollte wie folgt sein: zu tunPL/SQL gibt eine Liste in einer CASE-Anweisung zurück
SELECT * FROM FRUIT WHERE COLOR IN ('RED', 'YELLOW')
Was ich versuche (das funktioniert nicht):
SELECT * FROM FRUIT WHERE COLOR IN
CASE
WHEN TYPE = *something*
THEN ('RED', 'YELLOW')
ELSE ('GREEN')
END
Dies funktioniert:
SELECT * FROM FRUIT WHERE COLOR IN
CASE
WHEN TYPE = 1
THEN 'RED'
ELSE 'GREEN'
END
Der Fehler Ich bekomme:
ORA-00907 missing right parenthesis
Es funktioniert, wenn ich verwende mehrere COLOR = 'X' ODER COLOR = 'Y', aber ich frage mich, ob es eine Möglichkeit gibt, nur eine CASE-Anweisung dafür zu verwenden. Danke im Voraus.
einfach anstelle der Booleschen Logik. Kein Vorteil bei der Verwendung eines Case-Ausdrucks. –
Warum verwenden Sie keine Gewerkschaften? Wenn Sie von einer Tabelle abfragen müssen, aber mit dem Fall wo Klauseln - Gewerkschaften ist am häufigsten Weg zu gehen. – Ychdziu
Was ist Ihre erwartete Ausgabe? – maSTAShuFu