webForumDet fria alternativet

Sortering

4 svar · 161 visningar · startad av kristoffer

kristofferMedlem sedan juni 20001 266 inlägg
#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)

------------------
http://www.tavlingar.se

LarsGMedlem sedan dec. 200012 465 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.

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 16 aug 2001]

kristofferMedlem sedan juni 20001 266 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.

------------------
http://www.tavlingar.se

ElMacoMedlem 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.

------------------
To understand recursion, we must first understand recursion.

LarsGMedlem sedan dec. 200012 465 inlägg
#5

?

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 16 aug 2001]

Genererad på 364 ms · cache AV · v20260730165559-full.f96bc7eb