Toon posts:

[SQL] order by, maar niet alfabetisch

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik probeer een aantal velden te sorteren via SQL maar op een volgorde die ik zelf wil bepalen.

Mijn query is:
code:
1
SELECT day,hour FROM table ORDER BY day,hour;

Maar nu bestaat het veld "day" uit waarden als ma, di, wo, do en vr. Dat kan je dus niet alfabetisch sorteren, want ik krijg nu de (onlogische) volgorde di,do,ma,vr en wo. Hoe kan ik er dus voor zorgen dat ik ma,di,wo,do en vr als volgorde krijg?

  • Spockz
  • Registratie: Augustus 2003
  • Laatst online: 19-11 13:44

Spockz

Live and Let Live

Door in plaats van maandag "0" op te slaan?

[ Voor 8% gewijzigd door Spockz op 18-02-2007 19:59 ]

C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Day heb je nu als string ipv enum, wat hier al beter voor zou zijn. Bij ENUM kun je wel sorteren zoals jij het wilt, althans, bij MySQL.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Je kunt ook case gebruiken:
order by case day when 'ma' then 0 when 'di' then 1 ...etc... end case, hour;

Who is John Galt?


Verwijderd

een andere manier, bij mysql:

select dayofweek(deDatumKolom), (...) from (...) order by 1

of bij oracle:

select to_char(deDatumKolom,'D'), (...) from (...) order by 1

Verwijderd

Verwijderd schreef op zondag 18 februari 2007 @ 21:52:

of bij oracle:

select to_char(deDatumKolom,'D'), (...) from (...) order by 1
ehm, dit is jammer genoeg wel locale dependant (maar misschien wil je dat wel).

Sommige plaatsen is Maandag de eerste en elders is het zondag...
Pagina: 1