Avatar billede trumf Nybegynder
20. juni 2006 - 22:30 Der er 3 kommentarer og
2 løsninger

order by replace

Hejsa

Jeg vil gerne sortere nogle priser med den aveste pris først. Dog vil jeg have 0 i bunden efter den højeste pris.

Noget i stil med:
select * from tbl order by replace(pris, 0, 1000000)

pris er decimal 8,3 men der hvor der ikke er indtastet noget er den default 0 (uden decimaler)

Kan nogen løse den ??

På forhånd tak
Avatar billede hmortensen Nybegynder
20. juni 2006 - 22:35 #1
Måske en union kan bruges.

(SELECT * FROM tbl WHERE pris > 0 ORDER BY pris)
UNION
(SELECT * FROM tbl WHERE pris = 0)
Avatar billede arne_v Ekspert
20. juni 2006 - 22:41 #2
det kan den

alternativet maa vaere

SELECT * FROM tbl ORDER BY IF(pris>0,pris,1000000000)
Avatar billede trumf Nybegynder
20. juni 2006 - 23:42 #3
Det er jo smukt :)

Lægger i begge et svar, så deler jeg den.

Takker mange gange
Avatar billede arne_v Ekspert
21. juni 2006 - 01:22 #4
ok
Avatar billede hmortensen Nybegynder
21. juni 2006 - 07:21 #5
Det var så lidt.
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