Probleem:
U wilt records uit een tabel weergeven in alfabetische of omgekeerde alfabetische volgorde volgens de gegeven kolom.
Voorbeeld:
Onze database heeft een tabel met de naam klant. De klantentabel bevat gegevens in de kolommen id, first_name en last_name.
id | voornaam | achternaam |
---|---|---|
1 | Susan | Thomas |
2 | Jan | Michael |
3 | Tom | Müller |
Laten we de informatie van elke klant weergeven, in oplopende volgorde gesorteerd op achternaam.
Oplossing:
SELECT id, first_name, last_name, FROM customer ORDER BY last_name ASC;
Deze zoekopdracht retourneert alfabetisch gesorteerde records:
id | voornaam | achternaam |
---|---|---|
2 | Jan | Michael |
3 | Tom | Müller |
1 | Susan | Thomas |
Discussie:
Als u records uit een tabel wilt selecteren, maar ze gesorteerd wilt zien volgens een bepaalde kolom, kunt u eenvoudig de ORDER BY
gebruiken clausule aan het einde van een SELECT
uitspraak. Het maakt niet uit hoe ingewikkeld of lang uw SQL-query is—ORDER BY
moet altijd aan het einde van het commando staan.
Na de ORDER BY
trefwoord, noem je de kolom waarop de records moeten worden gesorteerd. In onze zoekopdracht sorteren we op de achternaam van de klant.
of
Standaard ORDER BY
zonder enige extra specificatie sorteert in oplopende volgorde (gelijk aan het gebruik van de ASC
trefwoord expliciet). Zoals je waarschijnlijk wel kunt raden, ASC
staat voor "oplopend". Als u in aflopende volgorde wilt sorteren, vereenvoudigt u de DESC
trefwoord achter de kolomnaam.
De onderstaande zoekopdracht is vergelijkbaar met de vorige, maar geeft een lijst met klanten terug, in aflopende volgorde gesorteerd op hun achternaam:
SELECT id, first_name, last_name, FROM customer ORDER BY last_name DESC;
id | voornaam | achternaam |
---|---|---|
1 | Susan | Thomas |
3 | Tom | Müller |
2 | Jan | Michael |