31. januar 2002 - 14:23
Der er
8 kommentarer og 1 løsning
max() på række
Hvorledes kan jeg returnere den største værdi fra flere felter i en række? Eksempel: Hvis jeg har en tabel der ser således ud: ID A B C D 1 12 6 23 2 2 3 33 22 10 3 55 2 75 44 Så vil jeg gerne have en sql-forespørgsel i stil med: SELECT id, max(A,B,C,D) as max FROM tabel Og resultatet skulle gerne blive: ID MAX 1 23 2 33 3 75 PS: Jeg benytter DB2 version 7.1
Annonceindlæg fra Thales
31. januar 2002 - 14:31
#1
det tror jeg ikke man kan ..... du må nok selecte alle kolonner og så lave et program der kan teste hvilken kolonne der indeholder den største værdi
31. januar 2002 - 14:33
#2
hmmm... Kan jeg så lave det vha. af en UDF (User Defined Function)? Og i såfald hvordan gør jeg det så nemmest?
31. januar 2002 - 15:00
#3
eller du kan bruge select greatest(greatest(greatest(a,b),c),d)
31. januar 2002 - 15:23
#4
hvis denne funktion ikke findes i DB2 så skal du lave en tilsvarende UDF med samme navn og logikken hedder så (i pseudo): greatest(x int,y int) return n int if x >= y then return x else return y end if
31. januar 2002 - 15:31
#5
place the following in a module Function getmax(A As Long, B As Long, C As Long, D As Long) As Long Dim w As Long w = IIf(A > B, A, B) w = IIf(C > w, C, w) w = IIf(D > w, D, w) getmax = w End Function then make a query SELECT tblABCD.ID, getmax([A],[B],[C],[D]) AS Highest FROM tblABCD;
31. januar 2002 - 15:37
#6
The answer I gave was for Access!
01. februar 2002 - 11:38
#7
teepee: Greatest() findes ikke i db2. terry: sorry, has to be for db2
01. februar 2002 - 11:40
#8
Jeg har været nødsaget til at lave det som en UDF. Hvis nogen ønsker det kan jeg godt poste resultatet.
08. februar 2007 - 00:22
#9
Løsning: create table maxx (id int, a int, b int, c int); insert into maxx values( 1,91,2,3); insert into maxx values( 2,1,92,3); insert into maxx values( 3,1,2,93); SELECT id,case when a < b then case when b<c then c else b end else case when a<c then c else a end end as max from maxx order by id;
Computerworld tilbyder specialiserede kurser i database-management