SQL leren: ORDER BY
Sorteren met ORDER BY
Noor schuift een laptop naar je toe. "De sponsors willen weten wie de grote namen zijn. En de affiche moet af. Kan die lijst niet gewoon op volgorde?" Jawel.
ORDER BY zet rijen op volgorde
Zonder ORDER BY belooft een database geen enkele volgorde: de rijen komen zoals het hem uitkomt. Met ORDER BY kies je zelf de kolom waarop gesorteerd wordt.
Standaard sorteert SQL oplopend: van klein naar groot, van A naar Z, van vroeg naar laat. Hier staat de goedkoopste artiest bovenaan.
SELECT naam, gage FROM artiesten ORDER BY gage| naam | gage |
|---|---|
| Bas & Bram | 2000 |
| aurora borealis | 2500 |
| Zonnebloem Collectief | 3000 |
| Vuurvogel | 3500 |
| Polderblues | 3800 |
| Jazzkwartet Mol | 4000 |
| Marieke Staal | 4500 |
| Echo Echo | 5000 |
DESC draait de volgorde om
Zet DESC (descending, aflopend) achter de kolom en het grootste staat bovenaan. Het tegenovergestelde, ASC, is de standaard: die mag je weglaten.
Met LIMIT erachter krijg je een top: de drie artiesten met de meeste volgers. De volgorde van de stukken ligt vast: SELECT … FROM … WHERE … ORDER BY … LIMIT.
SELECT naam, volgers FROM artiesten ORDER BY volgers DESC LIMIT 3| naam | volgers |
|---|---|
| Kiki Moreau | 1250000 |
| The Velvet Owls | 820000 |
| Neon Atlas | 690000 |
Waar blijft NULL?
Van drie artiesten weet Noor het aantal volgers nog niet: daar staat NULL. Voor SQLite is NULL kleiner dan alles, dus bij oplopend sorteren staan ze bovenaan, bij DESC onderaan.
Wil je ze niet in je lijstje, filter ze dan weg met WHERE volgers IS NOT NULL, zoals je in de videotheek leerde.
SELECT naam, volgers FROM artiesten ORDER BY volgers| naam | volgers |
|---|---|
| aurora borealis | NULL |
| Vuurvogel | NULL |
| Bas & Bram | NULL |
| Zonnebloem Collectief | 12000 |
| Polderblues | 15000 |
| Jazzkwartet Mol | 21000 |
| Marieke Staal | 39000 |
| Echo Echo | 45000 |
Probeer het zelf
Wie zijn de kleinste namen? Toon naam en volgers van de vijf artiesten met de minste volgers, zonder de artiesten waarvan het aantal onbekend is.
Klaar voor meer?
De volledige les heeft 5 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les