webForumDet fria alternativet
Logga in / Bli medlem

Sortera min kolumn

Databaser & SQL

5 svar · 236 visningar · startad av anno

Medlem sedan nov. 2000213 inlägg
Trådstart#1

Har en kolumn med massa siffror som jag vill sortera, noll är standardvärde.

Jag vill nu att när man sorterar ut listan så ska listan visas med 1 först, alltså 1, 2, 3 ,4 osv och 0 ska komma sist. Som det är nu så har jag bara en ORDER BY Siffra och då hamnar 0 först och det vill jag inte, kan man lösa detta på något vis?

Medlem sedan dec. 200012 464 inlägg
#2
order by case numberColumn when 0 then 1 else 0 end,
  numberColumn
Medlem sedan nov. 2000213 inlägg
#3

det fungera ju fin fint, tack för hjälpen

Medlem sedan nov. 2000213 inlägg
#4

En liten fråga till, vad är det som händer i sorteringen egentligen?

Om numberColumn = 0 görs den om till 1 tillfälligt i själva sorteringen för att sedan få sitt gamla värde?

Medlem sedan dec. 200012 464 inlägg
#5

Man skapas en temporärtabell med två kolumner (+ de som du gör select på) och ett index på dessa kolumner. Allt eftersom man läser så fylls dessa kolumner med värden enligt case. Färdigsorterat. Läs temporärtabellen. Klart.

Medlem sedan nov. 2000213 inlägg
#6

Va bra, nu förstår jag vad jag gjorde också när jag slängde in order by-satsen :)

381 ms totalt · 4 externa anrop · v20260731065814-full.c32e866c
124 ms — deklarationer (db)
125 ms — hämta statistik (db)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)