Temps de lecture approximative : 7 minutes
ORDER BY
En SQL, la commande ORDER BY
permet de trier les résultats d'une requête. Il est possible de trier les données sur une ou plusieurs colonnes, par ordre ascendant ou descendant. L’utilisation la plus basique de cette commande s’effectue de la manière suivante :
SELECT une_colonne FROM une_table ORDER BY une_colonne_2;
Cette requête SQL va donc sélectionner grâce à la commande SELECT
la colonne une_colonne provenant de la table nommée une_table et sera trié par la colonne une_colonne_2 via la commande ORDER BY
.
Afin de mettre en évidence l'utilisation de la commande ORDER BY
et de comprendre rapidement comment cette dernière fonctionne, voyons sans plus attendre un exemple simple. Pour cet exemple, nous utiliserons la table clients qui contient les colonnes et données suivantes. Cette dernière simule la table qui contient les clients d'une entreprise quelconque.
id | prenom | nom | ville | |
---|---|---|---|---|
1 | Marine | Leroy | mleroy@example.com | Paris |
2 | Jean | René | jrene@example.com | Lyon |
3 | Ted | Bundy | tbundy@example.com | Lyon |
4 | Paul | Bismuth | pbismuth@example.com | Lyon |
5 | Caroline | Rodriguez | crodriguez@example.com | Paris |
Lorsqu'on utilise la commande ORDER BY
, par défaut et sans instructions contraire, les résultats sont classés par ordre ascendant : suffixe ASC. Il est possible d'inverser le trie en utilisant le suffixe DESC.
SELECT id, email FROM clients ORDER BY id ASC;
Résultat
id | |
---|---|
1 | mleroy@example.com |
2 | jrene@example.com |
3 | tbundy@example.com |
4 | pbismuth@example.com |
5 | crodriguez@example.com |
SELECT id, email FROM clients ORDER BY id DESC;
Résultat
id | |
---|---|
5 | crodriguez@example.com |
4 | pbismuth@example.com |
3 | tbundy@example.com |
2 | jrene@example.com |
1 | mleroy@example.com |
Il est également possible de trier sur plusieurs colonnes, en d'autres termes qu'il y est plusieurs tries d'effectués. Dans l'exemple ci-dessous, on décide de trier les résultats sur la colonne ville. On obtient naturellement un ordre des résultats. Dans le deuxième exemple, on trie d'abord sur la colonne ville puis sur le nom. Ainsi, les résultats qui ont la même valeur pour la colonne ville seront triés avec la colonne nom. Ce n'était pas le cas dans le premier exemple, le trie était par défaut sur la colonne id.
Pour trier sur plusieurs colonnes, il faut donc les séparer avec des ,
(virgules).
SELECT nom, ville FROM clients ORDER BY ville ASC;
Résultat
nom | ville |
---|---|
René | Lyon |
Bundy | Lyon |
Bismuth | Lyon |
Leroy | Paris |
Rodriguez | Paris |
SELECT nom, ville FROM clients ORDER BY ville ASC, nom ASC;
Résultat
nom | ville |
---|---|
Bismuth | Lyon |
Bundy | Lyon |
René | Lyon |
Leroy | Paris |
Rodriguez | Paris |