Alex_winf01 Geschrieben 15. September 2010 Geschrieben 15. September 2010 Hallo, ich habe folgende verzweigte CASE WHEN-Anweisung: CASE WHEN SpalteA > 2009 THEN BEGIN WHEN SpalteD='K' or SpalteD='G' And SpalteB='false' and SpalteC='false'THEN BEGIN 1 ELSE 0 END END ELSE BEGIN WHEN SpalteD='K' or SpalteD='G' And SpalteB='false' and SpalteC='false' THEN BEGIN THEN BEGIN 1 ELSE 0 END END END END CASE as xyz Ich bekomme die Fehlermeldung, dass ein Schlüsselwort fehlt. Was mache ich falsch? Zitieren
dr.dimitri Geschrieben 16. September 2010 Geschrieben 16. September 2010 Ist das in PL/SQL oder in einem SQL Statement? Zitieren
Alex_winf01 Geschrieben 16. September 2010 Autor Geschrieben 16. September 2010 @ dr.dimitri Das ist in einem SQL-Statement. Zitieren
Stefan87 Geschrieben 16. September 2010 Geschrieben 16. September 2010 Hi, also ich würde sagen da sind mehrere kleine Fehler drin... auf welcher DB soll das denn laufen? so müsste es normal gehen ... SELECT CASE WHEN SpalteA > 2009 THEN case WHEN SpalteD='K' or SpalteD='G' And SpalteB='false' and SpalteC='false' THEN 1 ELSE 0 END ELSE case WHEN SpalteD='K' or SpalteD='G' And SpalteB='false' and SpalteC='false' THEN 1 ELSE 0 END END FROM XXX Allerdings würde ich die "When" abfragen mit Klammern ausstatten da sonst die AND und OR verknüpfungen nicht ganz kla sind... Zitieren
Alex_winf01 Geschrieben 16. September 2010 Autor Geschrieben 16. September 2010 @ Stefan87 Das Statement läuft auf einer Oracle 10g. Zitieren
Stefan87 Geschrieben 16. September 2010 Geschrieben 16. September 2010 Ja dann sollte das so klappen wie ich es geschrieben habe ;-) Zitieren
Toothrot Geschrieben 16. September 2010 Geschrieben 16. September 2010 Warum wird nach SpalteA unterschieden, wenn in beiden Zweigen das gleiche gemacht wird? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.