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

Comment trier par deux colonnes en SQL ?

Problème :

Vous devez afficher les enregistrements d'une table donnée triés sur deux colonnes.

Exemple :

Notre base de données contient une table nommée employee avec les colonnes suivantes :id , first_name , last_name , et salary .

identifiant prénom nom_de_famille salaire
1 Lisa Ulman 3 000
2 Ada Müller 2400
3 Thomas Vert 2400
4 Michel Müller 3 000
5 Marie Vert 2400

Affichons toutes les informations pour chaque employé, mais trions d'abord les enregistrements en fonction du salaire par ordre décroissant, puis par nom de famille dans l'ordre croissant.

Solution :

SELECT id,  
  first_name,
  last_name,
  salary
FROM employee
ORDER BY salary DESC, last_name;

Cette requête renvoie des enregistrements triés selon deux colonnes :salaire et nom_de_famille .

<
identifiant prénom nom_de_famille salaire
4 Michel M uller 3 000
1 Lisa U lman 3 000
3 Thomas G reen 2 400
5 Marie G reen 2 400
2 Ada M uller 2 400

Discussion :

Si vous souhaitez sélectionner des enregistrements dans une table mais souhaitez les voir triés selon deux colonnes, vous pouvez le faire avec ORDER BY . Cette clause se trouve à la fin de votre requête SQL.

Après le ORDER BY mot-clé, ajoutez le nom de la colonne par laquelle vous souhaitez trier les enregistrements en premier (dans notre exemple, salaire). Ensuite, après une virgule, ajoutez la deuxième colonne (dans notre exemple, last_name ). Vous pouvez modifier l'ordre de tri (croissant ou décroissant) séparément pour chaque colonne. Si vous souhaitez utiliser l'ordre croissant (de bas en haut), vous pouvez utiliser le ASC mot-clé; ce mot-clé est cependant facultatif, car il s'agit de l'ordre par défaut lorsqu'aucun n'est spécifié. Si vous souhaitez utiliser l'ordre décroissant, mettez le DESC mot-clé après la colonne appropriée (dans l'exemple, nous avons utilisé l'ordre décroissant pour le salary colonne).

Dans notre exemple, nous avons d'abord trié le résultat par salaire dans l'ordre décroissant (des salaires les plus élevés aux plus bas), puis par nom de famille dans l'ordre croissant dans les enregistrements déjà triés.