Decode mit Datum

Hallo!
Ich erstelle gerade eine Datenbankabfrage einer Oracle 9i-DB. Nun habe ich folgendes Problem:
Ich möchte prüfen, ob ein Datum kleiner ist, als das andere. Wenn ja, dann soll er zu dem Datum 1 Tag hinzuaddieren, sonst soll er das Datum lassen.
Nun versuche ich das Ganze mit der Decode- Funktion, allerdings scheitert es noch an meiner Syntax.
Hier mein Code:

decode(MV.DT\_ENDE\_BEHANDLUNG,

Wo ist mein Fehler, bzw. wie müßte es richtig heißen?
Danke im Voraus.
Gruß
Florian

Hallo Florian!

Dein Problem ist, dass der DECODE ziemlich „dumm“ ist: er kann einen Parameter nur auf diskrete Werte prüfen (als nix mit grösser, kleiner o.ä.). Du kannst dir allerdings - wenn es denn unbedingt der DECODE sein soll - mit SIGN behelfen.

Das Ganze sieht dann so aus:

decode(sign(MV.DT\_ENDE\_BEHANDLUNG-MV.DT\_BEGINN\_BEHANDLUNG),
 -1, MV.DT\_ENDE\_BEHANDLUNG + 1,
 MV.DT\_ENDE\_BEHANDLUNG) Dauer

Gruß
Martin