Skip to content

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.


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 colonne1

Par 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, colonne3
FROM table
ORDER BY colonne1 DESC, colonne2 ASC

💡 Bon à savoir : L’utilisation du suffixe ASC n’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.


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

Pour récupérer la liste des utilisateurs triés par ordre alphabétique de leur nom de famille :

SELECT *
FROM utilisateur
ORDER BY nom

Ré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

Pour classer les utilisateurs du tarif_total le plus élevé au plus bas :

SELECT *
FROM utilisateur
ORDER BY tarif_total DESC

Ré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

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 utilisateur
ORDER BY nom, date_inscription DESC

Ré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, prenom
FROM utilisateur
ORDER BY date_inscription DESC

Résultat :

nom prenom
Dubois Simon
Dubois Chloé
Durand Fabienne
Dupond Fabrice
Durand Maurice

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 utilisateur
ORDER BY tarif_total DESC NULLS LAST;

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