Temps de lecture approximative : 7 minutes

Commande SQL 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 :

SQL
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.

Table : clients
id prenom nom email 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.

Trie ascendant

SQL
SELECT id, email FROM clients ORDER BY id ASC;
Résultat
id email
1 mleroy@example.com
2 jrene@example.com
3 tbundy@example.com
4 pbismuth@example.com
5 crodriguez@example.com

Trie descendant

SQL
SELECT id, email FROM clients ORDER BY id DESC;
Résultat
id email
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).

SQL
SELECT nom, ville FROM clients ORDER BY ville ASC;
Résultat
nom ville
René Lyon
Bundy Lyon
Bismuth Lyon
Leroy Paris
Rodriguez Paris
SQL
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