2nd Dec 2022 7 minutes de lecture Clause SQL ORDER BY avec 7 exemples Himanshu Kathuria sql ORDER BY Table des matières Qu'est-ce que la clause SQL ORDER BY ? Exemple 1 : ORDER BY à l'aide d'une colonne numérique Exemple 2 : ORDER BY à l'aide d'une colonne de texte Exemple 3 : ORDER BY en utilisant une colonne de date Exemple 4 : Classement par ordre décroissant Exemple 5 : ORDER BY en utilisant un numéro de colonne Exemple 6 : Tri de plusieurs colonnes Exemple 7 : Utilisation de ORDER BY avec des expressions Vous voulez vous entraîner à utiliser ORDER BY en SQL ? Apprenez à connaître la clause SQL ORDER BY ! Nos exemples pratiques et simples vous aideront à comprendre sa syntaxe, ses utilisations courantes et ses meilleures pratiques. Le langageSQL ou langage de requête structuré vous permet de "parler" à une base de données. Il vous permet de créer, d'extraire et de manipuler les données d'une base de données relationnelle. Ce langage est devenu tellement omniprésent qu'il n'a épargné pratiquement aucun domaine lié aux données. Si vous vous intéressez à la clause SQL ORDER BY, je suppose que vous avez déjà commencé à apprendre SQL ou que vous envisagez de le faire prochainement. Cette clause est utilisée pour trier les résultats dans un ordre donné. Dans cet article, nous allons aborder quelques exemples pratiques pour démontrer son utilisation. Si vous n'êtes pas déjà familiarisé avec les principes fondamentaux des requêtes SQL, je vous recommande de suivre notre SQL pour les débutants cours. Plongeons directement dans la clause SQL ORDER BY. Qu'est-ce que la clause SQL ORDER BY ? Comme nous l'avons déjà dit, la clause SQL ORDER BY est utilisée pour classer les résultats d'une requête dans un ordre particulier. Supposons que vous soyez un professeur d'université et que vous souhaitiez imprimer une liste des étudiants inscrits à votre cours par ordre alphabétique. Si ces informations sont stockées dans une base de données, une simple requête vous permettra d'obtenir les résultats. D'après mon expérience, ORDER BY est l'une des constructions SQL les plus utiles ; presque tous les rapports et analyses y ont recours. Permettez-moi de vous présenter un exemple qui explique comment écrire une requête simple à l'aide de ORDER BY. Exemple 1 : ORDER BY à l'aide d'une colonne numérique Imaginez que vous travaillez en tant que responsable des ventes dans une entreprise. La base de données de votre entreprise stocke les données de vente de chaque vendeur dans la table suivante, appelée sales_performance: sales_person_idnameterritorytotal_sales_valuejoining_date 2333GregorioBavaria1922021-Sep-2021 4323AaronLondon32000010-Jan-2018 1113SebastianLondon3243331-Oct-2020 4134PierreParis2121401-Aug-2020 Imaginons maintenant que vous souhaitiez récupérer cette liste de vendeurs. Vous voulez qu'ils soient listés par leur numéro d'identification dans l'ordre croissant (c'est-à-dire du plus petit au plus grand, de A à Z, etc.). Votre requête ressemblera à quelque chose comme ceci : SELECT * FROM sales_performance ORDER BY sales_person_id; Sortie : sales_person_idnameterritorytotal_sales_valuejoining_date 1113SebastianLondon3243331-Oct-2020 2333GregorioBavaria1922021-Sep-2021 4134PierreParis2121401-Aug-2020 4323AaronLondon32000010-Jan-2018 La requête fonctionne en retournant tous les enregistrements et toutes les colonnes de la table sales_performance puis organise les résultats en fonction de l'ordre numérique de la colonne sales_person_id. Il est important de noter que ORDER BY trie par défaut dans l'ordre croissant. Vous pouvez utiliser le mot-clé ASC pour indiquer que vous souhaitez obtenir les résultats dans l'ordre croissant, mais vous n'êtes pas obligé de l'inclure. Dans un champ contenant des nombres, l'ordre croissant place le plus petit nombre en premier, suivi du plus petit suivant, et ainsi de suite. Le plus grand nombre vient en dernier. Exemple 2 : ORDER BY à l'aide d'une colonne de texte Vous pouvez également utiliser la même clause pour trier les valeurs d'une colonne par ordre alphabétique. Par exemple, supposons que vous souhaitiez obtenir une liste de vendeurs classés par leur prénom. Voici la requête : SELECT * FROM sales_performance ORDER BY name; Sortie : sales_person_idnameterritorytotal_sales_valuejoining_date 4323AaronLondon32000010-Jan-2018 2333GregorioBavaria1922021-Sep-2021 4134PierreParis2121401-Aug-2020 1113SebastianLondon3243331-Oct-2020 Les enregistrements sont maintenant triés par ordre alphabétique selon l'adresse name. Par ordre croissant, cela signifie que les noms sont classés par ordre alphabétique de A à Z. Exemple 3 : ORDER BY en utilisant une colonne de date Vous pouvez également trier les résultats par une colonne de date comme joining_date. Dans le cas de la colonne de date, la requête par défaut renvoie les enregistrements de la date la plus ancienne à la plus récente : SELECT * FROM sales_performance ORDER BY joining_date; Sortie : sales_person_idnameterritorytotal_sales_valuejoining_date 4323AaronLondon32000010-Jan-2018 4134PierreParis2121401-Aug-2020 1113SebastianLondon3243331-Oct-2020 2333GregorioBavaria1922021-Sep-2021 Ici, les résultats sont classés par joining_date, de la plus ancienne à la plus récente. Exemple 4 : Classement par ordre décroissant Jusqu'à présent, tous les enregistrements ont été triés par ordre croissant. Cependant, vous pouvez classer les enregistrements par ordre décroissant - il suffit d'écrire le mot-clé DESC après le nom de la colonne. Par exemple, disons que vous voulez classer cette liste par valeur totale des ventes réalisées par chaque vendeur. Vous voulez voir le plus grand nombre (c'est-à-dire les ventes les plus élevées) en premier, vous devrez donc trier par ordre décroissant. Essayons la requête suivante : SELECT * FROM sales_performance ORDER BY total_sales_value DESC; Sortie : sales_person_idnameterritorytotal_sales_valuejoining_date 4323AaronLondon32000010-Jan-2018 1113SebastianLondon3243331-Oct-2020 4134PierreParis2121401-Aug-2020 2333GregorioBavaria1922021-Sep-2021 Les résultats sont triés par ordre décroissant (10-1) en fonction de la valeur totale des ventes. Vous pouvez également effectuer cette opération avec des valeurs de texte ou de date ; dans ce cas, les résultats seront classés de Z à A (texte) ou du plus récent au plus ancien (date). Les mots-clés DESC ou ASC peuvent être utilisés si nécessaire. Si vous omettez le mot-clé, les résultats seront classés par ordre croissant. Exemple 5 : ORDER BY en utilisant un numéro de colonne Vous pouvez également référencer une colonne en utilisant une référence numérique basée sur l'ordre des colonnes dans le tableau. En d'autres termes, vous utilisez un numéro à la place du nom de la colonne. Jetez un coup d'œil à l'exemple suivant pour plus de clarté : SELECT sales_person_id, name FROM sales_performance ORDER BY 2; Sortie : sales_person_idname 4323Aaron 2333Gregorio 4134Pierre 1113Sebastian Le nom de la colonne est la deuxième colonne de notre tableau. Nous voulons ordonner les valeurs renvoyées par la requête en fonction du nom du commercial, mais au lieu d'écrire nom après ORDER BY, nous avons écrit 2. Remarque : cette approche est uniquement recommandée pour les requêtes interactives. Elle n'est pas recommandée pour l'écriture de scripts, car les requêtes comportant des chiffres dans ORDER BY sont difficiles à gérer. Exemple 6 : Tri de plusieurs colonnes Lorsque vous écrivez des requêtes réelles, vos exigences sont rarement aussi simples que les exemples que nous avons utilisés ; vous pouvez avoir à trier vos valeurs sur la base de plusieurs colonnes. La clause ORDER BY vous permet de le faire en spécifiant une liste de colonnes ; il suffit de séparer les noms des colonnes par des virgules. Vous pouvez utiliser les mots-clés ASC ou DESC (si vous le souhaitez) avec chaque colonne pour trier cette colonne dans l'ordre croissant ou décroissant. Disons que vous devez afficher les enregistrements de la table dans l'ordre décroissant de territory, puis par nom de vendeur. Votre requête ressemblera à quelque chose comme ceci. SELECT * FROM sales_performance ORDER BY territory DESC, name ASC; Résultat : sales_person_idnameterritorytotal_sales_valuejoining_date 4134PierreParis2121401-Aug-2020 4323AaronLondon32000010-Jan-2018 1113SebastianLondon3243331-Oct-2020 2333GregorioBavaria1922021-Sep-2021 Vous remarquerez dans le résultat que la colonne territory est classée par ordre alphabétique inverse (c'est-à-dire par ordre décroissant). Pour le territoire de Londres, les enregistrements sont présentés dans l'ordre alphabétique du nom. Exemple 7 : Utilisation de ORDER BY avec des expressions Vous pouvez également trier en fonction d'autres critères que le nom des colonnes ; SQL vous permet d'utiliser des expressions pour trier des valeurs. Par exemple, disons que vous voulez trier en concaténant territory et name dans l'ordre croissant. Voici la requête : SELECT * FROM sales_performance ORDER BY CONCAT(territory, name); Sortie : sales_person_idnameterritorytotal_sales_valuejoining_date 2333GregorioBavaria1922021-Sep-2021 4323AaronLondon32000010-Jan-2018 1113SebastianLondon3243331-Oct-2020 4134PierreParis2121401-Aug-2020 Ici les enregistrements sont ordonnés par une concaténation de territory et name. Ainsi Bavaria et Gregorio deviennent les premiers dans l'ordre alphabétique et Paris Pierre est le dernier. Vous pouvez utiliser CASE dans ORDER BY pour produire des classements vraiment précis. Vous voulez vous entraîner à utiliser ORDER BY en SQL ? J'espère que ces exemples ont clairement démontré l'utilisation de la clause ORDER BY. Le tri des données est un besoin essentiel dans la plupart des vues et des rapports, d'où l'importance de maîtriser l'utilisation de ORDER BY. Et la clé pour devenir bon dans la rédaction de requêtes est la pratique ! Plus vous écrirez de requêtes pour différents cas d'utilisation, plus l'écriture de requêtes deviendra intuitive. Si vous êtes à la recherche d'exercices pratiques SQL, jetez un coup d'œil à notre site Web interactif. Exercices Pratiques de SQL. Il propose 88 exercices interactifs allant du plus simple au plus avancé. Et si vous recherchez une expérience d'apprentissage complète, notre parcours Le SQL de A à Z est fait pour vous. Elle propose 7 cours interactifs et vous mettra sur la voie de compétences SQL de niveau professionnel. Vous pouvez également consulter cet article sur les différentes manières d'apprendre SQL. Bonne chance et bon apprentissage ! Tags: sql ORDER BY