Problème :
Vous souhaitez trier le résultat d'une requête SQL par ordre croissant ou décroissant.
Exemple :
Notre base de données contient une table nommée salary_information
avec des données dans les colonnes id
, first_name
, last_name
, et monthly_earnings
. Nous voulons trier les employés en fonction de leurs monthly_earnings
par ordre décroissant.
identifiant | prénom | nom_de_famille | revenus_mensuels |
---|---|---|---|
1 | Calvin | Rios | 3 500 |
2 | Alan | Paterson | 4000 |
3 | Kurt | Evans | 2 300 |
4 | Alex | Watkins | 5500 |
Solution :
Nous utiliserons un ORDER BY
clause. Voici la requête :
Nous utiliserons la fonction CURRENT_DATE
pour obtenir la date actuelle :
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
Voici le résultat de la requête :
prénom | nom_de_famille | revenus_mensuels |
---|---|---|
Alex | Watkins | 5500 |
Alain | Paterson | 4000 |
Calvin | Rios | 3 500 |
Kurt | Evans | 2 300 |
Maintenant, nous pouvons voir qu'Alex Watkins est le premier sur la liste, ce qui signifie qu'il gagne le plus d'argent.
Discussion :
Utilisez un ORDER BY
si vous souhaitez trier l'ensemble de données par ordre croissant ou décroissant. La syntaxe d'un ORDER BY
clause est la suivante :
SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
Dans ce qui précède, ASC|DESC
signifie qu'il faut choisir soit le mot clé ASC
(croissant) ou DESC
(décroissant) pour ordonner l'ensemble de données comme vous le souhaitez.
Outre le tri par colonnes numériques, vous pouvez également trier par colonnes de texte. Un ORDER BY
clause triera les colonnes de texte par ordre alphabétique.
Au lieu du nom de la colonne, vous pouvez également utiliser la position de la colonne en partant de la gauche. Ainsi, dans notre exemple, au lieu d'écrire :
ORDER BY monthly_earnings DESC
vous pouvez également écrire :
ORDER BY 3 DESC
Si vous souhaitez trier le tableau de l'exemple par le first_name
colonne par ordre alphabétique (ascendant), vous pouvez utiliser la requête suivante :
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
Il convient également de noter que vous pouvez trier sur plusieurs colonnes. Ceci est utile lorsque certaines valeurs d'une colonne donnée sont répétées et que vous avez besoin d'un tri supplémentaire. Dans ce cas, séparez les noms de colonne par des virgules dans la clause ORDER BY.
Vous pouvez même trier par ordre croissant d'une colonne et par ordre décroissant d'une autre. Voici une illustration de la syntaxe de cette combinaison :
ORDER BY Col1 ASC, Col2 DESC;
Si vous omettez le ASC
ou DESC
mot-clé, un tri croissant est effectué par défaut.