Le langage SQL offre certains paramètres permettant de trier les données. Pour cela, à la requête "SELECT * FROM table WHERE condition", nous devons ajouter "ORDER BY champ", où champ est le champ sur lequel nous souhaitons opérer le tri.
Prenons le cas de la table (matable) suivante:
hebergement |
note |
prix |
Gite |
3 |
250 |
Hôtel |
3 |
400 |
Camping |
4 |
200 |
Hôtel |
2 |
450 |
Tri simple :
La requête SELECT * FROM matable ORDER BY prix retournera:
hebergement |
note |
prix |
Hôtel |
2 |
450 |
Gite |
3 |
250 |
Camping |
4 |
200 |
Hôtel |
3 |
400 |
Tri dans l'ordre décroissant :
Il est également possible de demander un tri en ordre décroissant en ajoutant le mot clé DESC. Et comme un tri peut également s'appliquer sur des chaînes alphanumériques (on procède alors à un tri alphabétique) la requête suivante est valable SELECT * FROM matable ORDER BY hebergement DESC et donnera:
hebergement |
note |
prix |
Hôtel |
2 |
450 |
Hôtel |
3 |
400 |
Gite |
3 |
250 |
Camping |
4 |
200 |
Tri sur plusieurs champs :
De même il est possible de demander un tri selon plusieurs critères en indiquant une succession de champs, ainsi, SELECT * FROM matable ORDER BY hebergement,note triera d'abord les hébergements par ordre alphabétique et pour tous les enregistrements ayant le même hébergement le tri se fera selon la note.
hebergement |
note |
prix |
Camping |
4 |
200 |
Gite |
3 |
250 |
Hôtel |
2 |
450 |
Hôtel |
3 |
400 |
Tri sur plusieurs champs croissant et décroissant :
Cela n'interdit pas l'utilisation de l'attribut DESC, il suffit de l'ajouter derrière le (ou les) champ()s qui doi(ven)t être trié(s) en ordre décroissant. SELECT * FROM matable ORDER BY hebergement DESC,note
hebergement |
note |
prix |
Hôtel |
2 |
450 |
Hôtel |
3 |
400 |
Gite |
3 |
250 |
Camping |
4 |
200 |