Avatar billede simonsenpq Nybegynder
14. januar 2005 - 09:27 Der er 1 løsning

DB2-function - syntaks-problem

Skal bruge en user-defined function i DB2, men har lidt problemer med syntaksen. Synes efterhånden jeg har læst "hele" internettet igennem, men kan ikke finde svar på mit problem.

Min funktion skal se nogenlunde således ud:

CREATE FUNCTION Generer_vare_nr(kategori VARCHAR(100))
RETURNS INTEGER
LANGUAGE SQL
RETURN (
  -- her har jeg problemer - derfor lidt pseudokode
  variabel = en forespørgsel SELECT MAX(....)...WHERE kategori = kategori
  hvis variabel == null return 1
  else return variabel       
);

Håber, der er nogen, som kan hjælpe :-)
Avatar billede simonsenpq Nybegynder
14. januar 2005 - 11:01 #1
Så fandt jeg endelig selv ud af det :-)

Tog udgangspunkt i nedenstående eksempel fra http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_SQL.HTM

CREATE FUNCTION max_sal(inval SMALLINT)
RETURNS DECIMAL(7,2)
RETURN WITH
  ddd (max_sal) AS
  (SELECT  MAX(S2.salary)
    FROM    staff S1
          ,staff S2
    WHERE  S1.id    =  inval
      AND  S1.dept  =  s2.dept)
  ,yyy (max_sal) AS
  (SELECT  MAX(S2.salary)
    FROM    staff S1
          ,staff S2
    WHERE  S1.id    =  inval
      AND  S1.years =  s2.years)
SELECT CASE
          WHEN ddd.max_sal > yyy.max_sal
          THEN ddd.max_sal
          ELSE yyy.max_sal
      END
FROM  ddd, yyy;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester