SQL ORDER BY : classer correctement les résultats de requêtes
Avec SQL ORDER BY
, vous organisez vos résultats de recherche lors de requêtes de données selon vos besoins individuels dans l’ordre croissant ou décroissant. En triant les données en lignes et en colonnes dans votre tableau cible, vous améliorez la vue d’ensemble et la lisibilité. Vous optimisez et accélérez ainsi les analyses de données et les requêtes sur des ensembles de données complexes.
Qu’est-ce que SQL ORDER BY
?
Si vous souhaitez trier les données et les résultats d’ensembles de données simples ou complexes dans la table cible, utilisez la commande ORDER BY
en SQL. Cette commande vous permet de définir pour vos données cibles un ordre croissant ou décroissant souhaité dans la requête de données. Grâce à ORDER BY
, vous obtenez ainsi des résultats de requête triés de manière claire et facilement lisible. Par défaut, la commande trie les données de la requête dans l’ordre croissant, c’est-à-dire de A à Z, ou de la plus petite à la plus grande valeur. Si vous préférez un autre ordre, indiquez le mot-clé facultatif ASC
(Ascend) pour ordre croissant ou DESC
(Descend) pour ordre décroissant.
Vous pouvez définir au choix une seule ou plusieurs colonnes pour les résultats de sortie. En raison de sa présentation claire, ORDER BY
joue un rôle important pour les requêtes de données ordonnées et rapides. La commande est particulièrement utilisée en combinaison avec SQL SELECT
, SQL WHERE
ainsi que, selon les cas, avec d’autres opérateurs SQL ou des fonctions comme SQL GROUP BY
.
Vous souhaitez mieux comprendre SQL, mais vous ne disposez que de peu de connaissances préalables ? Notre introduction à SQL avec exemples vous facilitera l’accès à ce langage de base de données très demandé.
Syntaxe de SQL ORDER BY
La syntaxe de la commande ORDER BY
se présente comme suit :
SELECT colonneA, colonneB, ... ou *
FROM Table
ORDER BY colonneA, colonneB, ... (optionnel : ASC ou DESC)
sqlSi vous indiquez une seule colonne après ORDER BY
, vous obtenez une colonne avec des résultats triés. Si vous indiquez plusieurs colonnes, la clause trie d’abord tous les résultats selon la colonne A. En cas d’entrées identiques dans différentes lignes, la clause classe les entrées selon la colonne B.
Vous pouvez étendre la syntaxe de SQL ORDER BY
avec les opérateurs ou paramètres souhaités. Avec une clause WHERE
, vous définissez par exemple des conditions supplémentaires pour limiter les résultats de la requête. La syntaxe en combinaison avec WHERE
se présente comme suit :
SELECT colonneA, colonneB, ... ou *
FROM Table
WHERE colonneA = 'condition de recherche'
ORDER BY colonneA, colonneB, ... (optionnel : ASC ou DESC)
sqlCes paramètres peuvent être utilisés :
SELECT
: avec SQLSELECT
, vous déterminez quelles données vous souhaitez analyser. Indiquez un astérisque*
si la requête s’applique à l’ensemble des données ou indiquez des noms de colonnes si vous souhaitez analyser des colonnes sélectionnées.FROM
: définit la table à partir de laquelle vous interrogez les données.WHERE
: avec la clause optionnelle SQLWHERE
, vous définissez une condition de recherche spécifique selon laquelle vous triez les résultats. Des opérateurs de comparaison supplémentaires comme=
ou des opérateurs comme SQLLIKE
ou SQLNOT
peuvent être utilisés ici.ORDER BY
: détermine la valeur selon laquelle vous triez les résultats. Si vous n’ajoutez niASC
niDESC
, le classement se fait automatiquement par ordre alphabétique ou numérique décroissant.
La clause ORDER BY
classe les valeurs NULL automatiquement ou selon l’ordre de tri choisi, selon la base de données. Dans SQLite, MySQL et SQL Server, la commande traite les valeurs NULL comme les valeurs les plus basses : dans l’ordre croissant, elles sont donc placées au début. Dans Oracle et PostgreSQL, les valeurs NULL sont considérées comme les valeurs les plus élevées : dans l’ordre croissant, elles se trouvent donc tout à la fin.
Applications de ORDER BY
Les cas d’usage de SQL ORDER BY comprennent :
-
Tri des informations sur les produits par nom de produit, catégorie ou prix
-
Tri des transactions par montant, date ou nom
-
Classement des commandes par nombre ou par évaluation
-
Tri des employés par salaire, missions, performance ou département
-
Listage des stocks par nombre ou par nom
-
Tri des livraisons par code postal ou numéro de suivi
-
Tri des listes de clients par région ou par âge
Avec un système de gestion de base de données évolutif et sécurisé, vous profitez de temps d’accès optimisés, de performances personnalisées et d’une protection fiable contre les interruptions. C’est précisément ce que propose le serveur d’hébergement SQL de IONOS, offrant également une protection des données conforme aux normes européennes.
- Virtualisation complète avec accès root
- Trafic illimité et jusqu'à 1 Gbit/s de bande passante
- Stockage SSD NVMe rapide et édition Plesk Web Host
Exemples pratiques de SQL `ORDER BY
Pour illustrer le fonctionnement de ORDER BY
, vous trouverez ci-dessous trois exemples pratiques.
Trier les produits par prix
Pour trier les produits de la catégorie « Beauté » par ordre croissant de prix dans un tableau « Produits », utilisez FROM
pour déterminer la catégorie que vous souhaitez trier. Avec ORDER BY
et ASC
, vous déterminez que vous voulez trier par ordre croissant de « Prix ». Procédez comme suit :
SELECT *
FROM Produits
WHERE Catégorie = 'Beauté'
ORDER BY Prix ASC;
sqlFiltrer les groupes de clients
Dans une table « Clients », vous souhaitez utiliser la condition de tri « Pays » pour trier tous les clients de France par ordre alphabétique de nom. Pour trier par ordre croissant de A à Z, vous n’avez pas besoin d’ajouter ASC
. Si vous souhaitez trier de Z à A, ajoutez DESC
à la commande SQL ORDER BY
:
SELECT *
FROM Clients
WHERE Pays = 'France'
ORDER BY Nom DESC;
sqlTrier avec plusieurs conditions
Dans une table « Produits », vous souhaitez trier les entrées de la catégorie « Electronique » par ordre alphabétique croissant de quantité commandée. Si la quantité commandée est identique, vous souhaitez trier les commandes par région. La syntaxe est la suivante :
SELECT *
FROM Produits
WHERE Catégorie = 'Electronique'
ORDER BY Quantité commandée ASC, Région DESC;
sqlAlternatives à la commande SQL ORDER BY
Il n’existe pas d’autre commande en SQL qui remplisse exactement la même fonction que ORDER BY
. Parmi les commandes SQL qui sont cependant souvent utilisées en combinaison avec SQL ORDER BY
, on trouve SQL GROUP BY
. Alors qu’avec GROUP BY
vous regroupez les enregistrements de colonnes par exemple par catégorie, vous pouvez en plus les ordonner avec ORDER BY
.
Exemple : vous souhaitez regrouper la valeur des commandes des clients par pays, puis les trier par ordre croissant de la quantité moyenne de commandes à l’aide de la fonction d’agrégation SQL AVG
, dont la syntaxe est la suivante :
SELECT Pays, AVG(Quantité commandée)
FROM Clients
WHERE Catégorie = 'Electronique'
GROUP BY Pays
ORDER BY AVG(quantité commandée) ASC;
sqlDe plus, avec la clause SQL HAVING
, vous pouvez filtrer les enregistrements triés selon des critères de recherche et des conditions définis. Avec LIMIT
, vous pouvez également limiter la quantité de résultats à un nombre souhaité.