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 (REM: un tri peut s'appliquer sur des chaînes alphanumériques) SELECT * FROM matable ORDER by hebergement DESC 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ère 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ébergements 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) champs qui doit être trié 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 |