Probleem:
U wilt het resultaat van een SQL-query in oplopende of aflopende volgorde sorteren.
Voorbeeld:
Onze database heeft een tabel met de naam salary_information
met gegevens in de kolommen id
, first_name
, last_name
, en monthly_earnings
. We willen de werknemers sorteren op hun monthly_earnings
in aflopende volgorde.
id | voornaam | achternaam | monthly_earnings |
---|---|---|---|
1 | Calvijn | Rios | 3500 |
2 | Alan | Paterson | 4000 |
3 | Kurt | Evans | 2300 |
4 | Alex | Watkins | 5500 |
Oplossing:
We gebruiken een ORDER BY
clausule. Hier is de vraag:
We gebruiken de functie CURRENT_DATE
om de huidige datum te krijgen:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
Hier is het resultaat van de zoekopdracht:
voornaam | achternaam | monthly_earnings |
---|---|---|
Alex | Watkins | 5500 |
Alan | Paterson | 4000 |
Calvijn | Rios | 3500 |
Kurt | Evans | 2300 |
Nu kunnen we zien dat Alex Watkins als eerste op de lijst staat, wat betekent dat hij het meeste geld verdient.
Discussie:
Gebruik een ORDER BY
als u de gegevensset in oplopende of aflopende volgorde wilt sorteren. De syntaxis voor een ORDER BY
clausule is als volgt:
SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
In het bovenstaande, ASC|DESC
betekent dat u ofwel het trefwoord ASC
. moet kiezen (oplopend) of DESC
(aflopend) om de dataset te ordenen zoals u dat wilt.
Naast sorteren op numerieke kolommen, kunt u ook sorteren op tekstkolommen. Een ORDER BY
clausule zal tekstkolommen in alfabetische volgorde sorteren.
In plaats van de kolomnaam kunt u ook de positie van de kolom vanaf de linkerkant gebruiken. Dus, in ons voorbeeld, in plaats van te schrijven:
ORDER BY monthly_earnings DESC
je kunt ook schrijven:
ORDER BY 3 DESC
Als u de tabel uit het voorbeeld wilt sorteren op first_name
kolom in alfabetische (oplopende) volgorde, kunt u de volgende zoekopdracht gebruiken:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
Het is ook vermeldenswaard dat u op meerdere kolommen kunt sorteren. Dit is handig wanneer sommige waarden in een bepaalde kolom worden herhaald en u extra moet sorteren. Scheid in dit geval de kolomnamen met komma's in de ORDER BY-component.
U kunt zelfs in oplopende volgorde sorteren op de ene kolom en in aflopende volgorde op een andere. Het volgende illustreert de syntaxis van deze combinatie:
ORDER BY Col1 ASC, Col2 DESC;
Als u de ASC
. weglaat of DESC
trefwoord, wordt standaard oplopend gesorteerd.