Oracle-SQL-ORA-00907: missing right Klammer Fehler in der CASE-Anweisung
Ich bin zum ausführen einer Abfrage mit der folgenden CASE-Anweisung in der select-Klausel:
select (case instr(listagg(D.first_name, ',')
within group (order by D.first_name), ',')
when 0
then substr(listagg(D.first_name, ',')
within group (order by D.first_name), 1)
else substr(listagg(D.first_name, ',')
within group (order by D.first_name), 1, instr(listagg(D.first_name, ',')
within group (order by D.first_name), ',') - 1) end) Advisor1FName
from ....
SQL Developer wird ein ORA-00907 fehlenden rechten paranthesis Fehler.
Was mache ich falsch? Jede Hilfe würde geschätzt werden.
- OK aussieht. Sie können versuchen, zu ersetzen Sie alle mit *, und versuchen Sie es erneut, um sicherzustellen, dass subtrahieren, die wir sehen, hat ein problem
- Vielleicht ein
end
fehlt am Endecase
- Sorry, das 'end' Schlüsselwort Mai verschwunden, während Sie kopieren. Das 'Ende' existiert in der Abfrage, und das gleiche problem besteht.
- Ich bin rückgängig Bearbeiten. Hinzufügen von "Gelöst" und die Lösung Ihrer Frage ist nicht, wie StackOverflow funktioniert (es ist ein "Frage und Antwort" - Seite, was bedeutet, dass eine Frage gepostet wird und dann wird es beantwortet, in den Bereich mit der Aufschrift "Deine Antwort"). Wenn Sie buchen möchten, die Lösung für zukünftige Leser, können Sie post a self-Antwort, Sie können sogar zu akzeptieren, es sich als die richtige. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gelöst werden, indem man die gesamte listagg-Funktion in Klammern. Es ist merkwürdig, dass Sie nötig waren, aber das ist, was das problem gelöst.
So,
wird