SQL ORDER BY



SQL > Commandes SQL > Order By 

Jusqu’à présent, nous avons vu comment extraire des données d’une table à l’aide des commandes SELECT et WHERE. Il convient souvent de lister les résultats dans un ordre particulier. Le classement peut se faire dans un ordre ascendant ou descendant, ou peut être établi par des valeurs saisies en chiffres ou en lettres. Dans de tels cas, il est possible d’utiliser le mot-clé ORDER BY pour atteindre notre objectif.

La syntaxe d’une instruction ORDER BY est comme suit :

SELECT "nom de colonne"
FROM "nom de table"
[WHERE "condition"]
ORDER BY "nom de colonne" [ASC, DESC];

Les crochets [ ] signifient que l’instruction WHERE est optionnelle. Toutefois, si une clause WHERE est déjà présente, elle se trouvera devant la clause ORDER BY. La clause ASC ou DESC provoque respectivement un tri des résultats dans un ordre ascendant ou descendant. En cas d’omission de l’une d’elles, la clause ASC est implicitement appelée, provoquant donc un tri en ordre ascendant par défaut.

Il est possible d’ordonner par plusieurs colonnes. Dans ce cas, la clause ORDER BY ci-dessus devient :

ORDER BY "nom de colonne 1" [ASC, DESC], "nom de colonne 2" [ASC, DESC]

Supposons que nous avons choisi l’ordre ascendant pour les deux colonnes, la colonne de sortie sera classée dans un ordre ascendant selon la colonne 1. S’il y a une liaison pour la valeur de la colonne 1, le tri se fera dans un ordre ascendant selon la colonne 2.

Par exemple, pour trier les contenus de la Table Store_Information par montant en dollar, dans un ordre descendant :

Table Store_Information
 Store_Name   Sales   Txn_Date 
 Los Angeles  1500   05-Jan-1999 
 San Diego  250   07-Jan-1999 
 San Francisco  300   08-Jan-1999 
 Boston  700   08-Jan-1999 

il faut saisir :

SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY Sales DESC;

Résultat:

Store_Name  Sales  Txn_Date
Los Angeles  1500  05-Jan-1999
Boston  700  08-Jan-1999
San Francisco  300  08-Jan-1999
San Diego  250  07-Jan-1999

En plus du nom de colonne, il est également possible d’utiliser une position de colonne (basée sur la requête SQL) pour indiquer la colonne à laquelle nous souhaitons appliquer la clause ORDER BY. La première colonne est 1, la seconde 2, et ainsi de suite. Dans l’exemple précédent, il serait possible d’obtenir les mêmes résultats en utilisant la commande suivante:

SELECT Store_Name, Sales, Txn_Date
FROM Store_Information
ORDER BY 2 DESC;

SQL Fonctions >>

Cette page a été mise à jour pour la dernière fois le 18/06/2022


Copyright © 2024   1keydata.com   Tous droits réservés