Database
 sql >> Base de données >  >> RDS >> Database

Comment trier en SQL

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.