Probleem:
U moet records uit een bepaalde tabel weergeven, gesorteerd op twee kolommen.
Voorbeeld:
Onze database heeft een tabel met de naam employee
met de volgende kolommen:id
, first_name
, last_name
, en salary
.
id | voornaam | achternaam | salaris |
---|---|---|---|
1 | Lisa | Ulman | 3000 |
2 | Ada | Müller | 2400 |
3 | Thomas | Groen | 2400 |
4 | Michael | Müller | 3000 |
5 | Maria | Groen | 2400 |
Laten we alle informatie voor elke werknemer weergeven, maar de records eerst sorteren op salaris in aflopende volgorde en vervolgens op achternaam in oplopende volgorde.
Oplossing:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Deze zoekopdracht retourneert gesorteerde records volgens twee kolommen:salaris en achternaam .
id | voornaam | achternaam | salaris |
---|---|---|---|
4 | Michael | M uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G reen | 2400 |
5 | Maria | G reen | 2400 |
2 | Ada | M uller | 2400 |
Discussie:
Als u records uit een tabel wilt selecteren, maar ze wilt zien gesorteerd op twee kolommen, kunt u dat doen met ORDER BY
. Deze clausule komt aan het einde van uw SQL-query.
Na de ORDER BY
trefwoord, voeg dan de naam toe van de kolom waarop u eerst records wilt sorteren (in ons voorbeeld salaris). Voeg dan, na een komma, de tweede kolom toe (in ons voorbeeld last_name
). U kunt de sorteervolgorde (oplopend of aflopend) voor elke kolom afzonderlijk wijzigen. Als u oplopende volgorde (van laag naar hoog) wilt gebruiken, kunt u de ASC
. gebruiken trefwoord; dit trefwoord is echter optioneel, omdat dat de standaardvolgorde is als er geen is opgegeven. Als u aflopende volgorde wilt gebruiken, typt u de DESC
trefwoord na de juiste kolom (in het voorbeeld gebruikten we aflopende volgorde voor het salary
kolom).
In ons voorbeeld hebben we het resultaat eerst gesorteerd op salaris in aflopende volgorde (hogere salarissen naar lagere) en vervolgens op achternaam in oplopende volgorde binnen de al gesorteerde records.