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 |