webForumDet fria alternativet
Logga in / Bli medlem

Sortering

Databaser & SQL

4 svar · 163 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Frågan#1

Hur formulerar jag en SQL-sats som sorterar efter en kolumns värden på vilka jag utför en aritmetisk operation? Ex:

SELECT * FROM mytable ORDER BY (value mod 3)
Medlem sedan dec. 200012 464 inlägg
#2

De flesta DBMS tillåter att du skriver ett uttryck vid order by. Jag tror nog att problemet är att man inte skriver mod på det sättet i den dbms du använder.


SELECT * FROM mytable ORDER BY mod(value,3)

Det finns ingen mod-funktion i SQL92 så det kan skilja sig hur den skrivs. Den är tillagd i SQL99 med den syntax som jag skrev.

Value är inget bra kolumnnamn, det är reserverat i SQL-standarden.

Medlem sedan juni 20001 257 inlägg
#3

Ok. Tack för det snabba svaret. Jag har inte tillgång till query analyzern hemma så jag kunde inte testa. Value var bara ett fantasinamn taget som exempel, moduloberäkningen var också bara ett exempel.

Medlem sedan juni 2000161 inlägg
#4

Kanske göra en computed columm och köra en order by på den?

alter table tblTable add compCol As ([value] Mod 3)

...eller nått.

/M.

Medlem sedan dec. 200012 464 inlägg
#5

?

252 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)