Classer le résultat d'une interrogation


Les lignes constituant le résultat d'un SELECT sont obtenues dans un ordre indéterminé. On peut, dans un SELECT, demander que le résultat soit classé dans un ordre ascendant ou descendant, en fonction du contenu d'une ou plusieurs colonnes (jusqu'à 16 critères de classement possibles). Les critères de classement sont spécifiés dans une clause ORDER BY dont la syntaxe est la suivante :

ORDER BY {nom_col1 | num_col1 [DESC] [, nom_col2 | num_col2 [DESC],...]}

Le classement se fait d'abord selon la première colonne spécifiée dans l'ORDER BY puis les lignes ayant la même valeur dans la première colonne sont classées selon la deuxième colonne de l'ORDER BY, etc... Pour chaque colonne, le classement peut être ascendant (par défaut) ou descendant (DESC).
L'ORDER BY peut faire référence à une colonne par son nom ou par sa position dans la liste des colonnes présentes derrière le SELECT (la première colonne sélectionnée a le numéro 1, la deuxième a le numéro 2, ...).

Exemple : Donner tous les employés classés par fonction, et pour chaque fonction classés par salaire décroissant

Remarque : Dans un classement les valeurs NULL sont toujours en tête quel que soit l'ordre du classement (ascendant ou descendant).

ATTENTION .....    Exercices