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 Ende case
  • 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. 🙂
InformationsquelleAutor Moon_Watcher | 2014-06-03
Schreibe einen Kommentar