SQL leren: ORDER BY a, b
Sorteren op meerdere kolommen
"Het tijdschema voor de affiche," zegt Noor. "Per dag, en binnen de dag op uur. Maar sommige optredens beginnen tegelijk, en dan staat het elke keer anders." Daar is iets aan te doen.
Gelijke waarden, geen vaste volgorde
Op zaterdag beginnen Nina Vos en Betonblok allebei om 20:00. Met alleen ORDER BY begin weet de database niet wie eerst moet: die volgorde ligt niet vast en kan de volgende keer anders zijn.
Voor een affiche wil je dat het elke keer hetzelfde is. Daarvoor geef je een tweede kolom op.
SELECT begin, podium, artiest FROM optredens WHERE dag = '2025-07-19' ORDER BY begin| begin | podium | artiest |
|---|---|---|
| 15:00 | Bospodium | Saffraan |
| 16:30 | Tent | Bas & Bram |
| 17:00 | Bospodium | Jazzkwartet Mol |
| 18:30 | Tent | MC Kade |
| 20:00 | Hoofdpodium | Nina Vos |
| 20:00 | Tent | Betonblok |
| 22:00 | Hoofdpodium | Kiki Moreau |
| 23:30 | Tent | Neon Atlas |
Eerst de ene kolom, dan de volgende
Na ORDER BY mag je meerdere kolommen zetten, met komma's ertussen. De database sorteert op de eerste kolom; de tweede beslist alleen bij gelijke waarden in de eerste.
Elke kolom krijgt haar eigen richting. Hier staan de genres van A naar Z, en binnen elk genre de duurste artiest bovenaan: DESC hoort alleen bij gage.
SELECT genre, naam, gage FROM artiesten ORDER BY genre, gage DESC| genre | naam | gage |
|---|---|---|
| elektronisch | Neon Atlas | 32000 |
| elektronisch | DJ Okapi | 27500 |
| elektronisch | Echo Echo | 5000 |
| folk | The Lighthouse Keepers | 9500 |
| folk | Marieke Staal | 4500 |
| folk | Zonnebloem Collectief | 3000 |
| folk | aurora borealis | 2500 |
| hiphop | MC Kade | 15000 |
Tekst sorteren, met een valkuil
Tekst sorteert SQLite letter per letter, op de code van elk teken. Daarin komen alle hoofdletters vóór alle kleine letters: Z komt vóór a.
Daarom staat *aurora borealis*, die haar naam bewust met kleine letters schrijft, helemaal onderaan, na Zonnebloem Collectief.
SELECT naam FROM artiesten ORDER BY naam| naam |
|---|
| Bas & Bram |
| Betonblok |
| Brandwerk |
| DJ Okapi |
| Echo Echo |
| Jazzkwartet Mol |
| Kiki Moreau |
| Lotte & de Lampen |
Probeer het zelf
Maak het tijdschema van zondag 20 juli. Toon podium, begin en artiest, per podium en binnen elk podium op beginuur.
Klaar voor meer?
De volledige les heeft 6 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les