Avatar billede ml Nybegynder
23. november 2007 - 14:07 Der er 4 kommentarer

ORDER BY field1 = 2 DESC i MSSQL

I MySQL kan man sortere efter f.eks. "ORDER BY field1 = 2 DESC, field2" så man altid får den row hvor field1 er lig 2 først og derefter resten sorterer efter field3.

Hvordan går man dette i MSSQL 2005?
Avatar billede Slettet bruger
23. november 2007 - 14:18 #1
ORDER BY IIF(field1 = 2,1,2), field2

IIF tager 3 parametre:
kriterie: field1 = 2
værdi hvis sand: 1
værdi hvis falsk: 2

Hvis field1 = 2 vil værdien af IIF blive 1 - i andre tilfælde vil den være 2. Disse værdier bliver sorteret ASC (default - du kan også sortere DESC) - dvs. 1 kommer før 2 og field1 = 2 vil derfor blive sorteret først.
Avatar billede arne_v Ekspert
23. november 2007 - 16:40 #2
IIF er vist Access - I SQLServer vil man lave det samme med en CASE WHEN
Avatar billede ml Nybegynder
23. november 2007 - 16:42 #3
Kunne heller ikke få IIF til at virke, men løste den med CASE: http://www.eksperten.dk/spm/147307
Avatar billede arne_v Ekspert
21. januar 2008 - 04:48 #4
Tid at få lukket spørgsmålet ?
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