ORDER BY – Trier les résultats
Bonne lecture et bon apprentissage !
Junior TSAFACK – 08/08/2026
⏱️ Temps de lecture estimé : 5 minutes
La commande ORDER BY permet de trier les lignes dans un résultat d’une requête SQL. Il est possible de trier les données sur une ou plusieurs colonnes, par ordre ascendant ou descendant.
Syntaxe
Section titled “Syntaxe”Une requête où l’on souhaite filtrer l’ordre des résultats utilise la commande ORDER BY de la sorte :
SELECT colonne1, colonne2 FROM table ORDER BY colonne1Par défaut, les résultats d’une requête sont classés par ordre ascendant (du plus petit au plus grand, ou de A à Z pour le texte). Il est possible d’inverser cet ordre en ajoutant le mot-clé DESC après le nom de la colonne.
Pour trier sur plusieurs colonnes, séparez-les par une virgule :
SELECT colonne1, colonne2, colonne3FROM tableORDER BY colonne1 DESC, colonne2 ASC💡 Bon à savoir : L’utilisation du suffixe
ASCn’est pas obligatoire car l’ordre ascendant est appliqué par défaut. Le préciser permet toutefois d’améliorer la lisibilité de votre code.
Exemple de données
Section titled “Exemple de données”Pour l’ensemble des exemples ci-dessous, nous utiliserons la table « utilisateur » suivante :
| id | nom | prenom | date_inscription | tarif_total |
|---|---|---|---|---|
| 1 | Durand | Maurice | 2012-02-05 | 145 |
| 2 | Dupond | Fabrice | 2012-02-07 | 65 |
| 3 | Durand | Fabienne | 2012-02-13 | 90 |
| 4 | Dubois | Chloé | 2012-02-16 | 98 |
| 5 | Dubois | Simon | 2012-02-23 | 27 |
Trier par ordre ascendant (par défaut)
Section titled “Trier par ordre ascendant (par défaut)”Pour récupérer la liste des utilisateurs triés par ordre alphabétique de leur nom de famille :
SELECT *FROM utilisateurORDER BY nomRésultat :
| id | nom | prenom | date_inscription | tarif_total |
|---|---|---|---|---|
| 4 | Dubois | Chloé | 2012-02-16 | 98 |
| 5 | Dubois | Simon | 2012-02-23 | 27 |
| 2 | Dupond | Fabrice | 2012-02-07 | 65 |
| 1 | Durand | Maurice | 2012-02-05 | 145 |
| 3 | Durand | Fabienne | 2012-02-13 | 90 |
Trier par ordre descendant
Section titled “Trier par ordre descendant”Pour classer les utilisateurs du tarif_total le plus élevé au plus bas :
SELECT *FROM utilisateurORDER BY tarif_total DESCRésultat :
| id | nom | prenom | date_inscription | tarif_total |
|---|---|---|---|---|
| 1 | Durand | Maurice | 2012-02-05 | 145 |
| 4 | Dubois | Chloé | 2012-02-16 | 98 |
| 3 | Durand | Fabienne | 2012-02-13 | 90 |
| 2 | Dupond | Fabrice | 2012-02-07 | 65 |
| 5 | Dubois | Simon | 2012-02-23 | 27 |
Trier sur plusieurs colonnes
Section titled “Trier sur plusieurs colonnes”Vous pouvez combiner plusieurs critères de tri. Par exemple, pour obtenir les utilisateurs par ordre alphabétique du nom, puis par date d’inscription décroissante pour ceux qui partagent le même nom :
SELECT *FROM utilisateurORDER BY nom, date_inscription DESCRésultat :
| id | nom | prenom | date_inscription | tarif_total |
|---|---|---|---|---|
| 5 | Dubois | Simon | 2012-02-23 | 27 |
| 4 | Dubois | Chloé | 2012-02-16 | 98 |
| 2 | Dupond | Fabrice | 2012-02-07 | 65 |
| 3 | Durand | Fabienne | 2012-02-13 | 90 |
| 1 | Durand | Maurice | 2012-02-05 | 145 |
Dans ce résultat, les « Dubois » sont triés par date d’inscription récente en premier (Simon avant Chloé), de même pour les « Durand » (Fabienne avant Maurice).
Trier avec des colonnes non sélectionnées
Section titled “Trier avec des colonnes non sélectionnées”Il est tout à fait possible de trier un résultat sur une colonne qui ne figure pas dans la clause SELECT :
SELECT nom, prenomFROM utilisateurORDER BY date_inscription DESCRésultat :
| nom | prenom |
|---|---|
| Dubois | Simon |
| Dubois | Chloé |
| Durand | Fabienne |
| Dupond | Fabrice |
| Durand | Maurice |
Ordre de tri avec les valeurs NULL
Section titled “Ordre de tri avec les valeurs NULL”Par défaut, les valeurs NULL sont généralement placées en premier pour un tri ascendant et en dernier pour un tri descendant (ce comportement dépend du SGBD).
Certains SGBD (comme PostgreSQL) permettent de spécifier explicitement la position des valeurs NULL avec NULLS FIRST ou NULLS LAST :
SELECT *FROM utilisateurORDER BY tarif_total DESC NULLS LAST;Prochain chapitre
Section titled “Prochain chapitre”Vous savez désormais comment trier vos résultats avec ORDER BY. Mais que faire si vous souhaitez limiter le nombre de résultats affichés, par exemple pour créer une pagination ?
👉 Chapitre 12 : LIMIT & OFFSET – Paginer les résultats
Bonne continuation !
Junior TSAFACK – 08/08/2026