Enrico: Update mit Case inkl. Where

Hallo liebe Forum-User,

ich benutze eine Oracle Datenbank in der kostenfreien 10gXE-Version.
Ich habe nun folgendes Problem, ich würde gern ein Update mit ein paar Case-Anweisungen durchführen (siehe Beispiel : klappt auch):

update t_test
set test_bemerkung = Case
       WHEN (feld1 is NULL or feld2 = 'alle')
     THEN  'nein'
       WHEN (feld1 is 'BLUB' or feld2 = 'sonstiges')
     THEN  'bemerkung2'
     .
     .
     . usw.
     .
     .
     else 'TEST'

Diese Case-Anweisung funktioniert auch, nun möchte ich aber hinter dem Else eine Where Klause anfügen:

update t_test
set test_bemerkung = (Case
       WHEN (feld1 is NULL or feld2 = 'alle')
     THEN  'nein'
       WHEN (feld1 is 'BLUB' or feld2 = 'sonstiges')
     THEN  'bemerkung2'
     .
     .
     . usw.
     .
     .
     else 'TEST' ) WHERE ID = '1234'

Aber dies funktioniert nicht. Wie kann ich die Case-Anweisung mit Hilfe einer Where-Klausel einschränken ohne die in jede Zeile schreiben zu müssen.

Vielen vielen Dank für euere Anregungen, Tipps und Hilfen.

MfG Enrico

  1. Hello,

    Aber dies funktioniert nicht.

    okay, ohne Oracle zu kennen macht das für mich erstmal keinen Sinn. Was heißt denn "funktioniert nicht"?

    Vielen vielen Dank für euere Anregungen, Tipps und Hilfen.

    hast du mal die Syntax von CASE nachgeschlagen? Gibts da vielleicht ein END oder so, bevor du die Where-Klausel einleiten darfst. Steht da vielleicht irgendwas bzgl. WHERE?

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Konsens ist kein Beweis  --  John Naisbitt
    1. Ich dank euch beiden vielmals.

      So ein Mist, da habe ich glatt das END nach der Case-Klausel vergessen. War vielleicht übermüdet *grins*

      Vielen Dank nochmal :-D

  2. Hallo,

    dem Case fehlt noch ein END.