m@rc-lenzin

Wenn etwas schief geht, dann freu dich. Das sind die Geschichten die dir in Erinnerung bleiben werden

oracle – Alternative zu DECODE

Die Oracle Fuction ist eine ganz schöne Sache, aber je nach Skript werden nicht alle Werte benötigt. Ich benötige die Funktion viel um zu Zählen wieoft ein Wert in einer Spalte vorkommt. Dies würde grundsätzlich etwa so aussehen:

sum(decode(wert, 0,1,null))

Die einfachere Lösung sieht nun so aus:

sum(ds(wert,0))

Um die Function zu erstellen kann folgendes Skript benutzt werden:

CREATE OR REPLACE function DBW.ds(h number, 
                              v number,
                              d number default null)
return number is 
  ret number;
begin
  --ret := decode(h,v,1,null);
  ret := case   when h = v then 1 
                else d 
                end;
  return ret;
end ds;

Weiter Beitrag

Zurück Beitrag

© 2025 m@rc-lenzin

Thema von Anders Norén