Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Spécifie l’ordre de tri utilisé sur les objets retournés dans une instruction SELECT.
Syntaxe
[ ORDER BY
{
order_by_expression [SKIP n] [LIMIT n]
[ COLLATE collation_name ]
[ ASC | DESC ]
}
[ ,…n ]
]
Les arguments
order_by_expression Toute expression de requête valide spécifiant une propriété sur laquelle trier. Plusieurs expressions de tri peuvent être spécifiées. La séquence des expressions de tri dans la clause ORDER BY définit l’organisation du jeu de résultats trié.
COLLATE {collation_name} Spécifie que l’opération ORDER BY doit être effectuée en fonction du classement spécifié dans collation_name. COLLATE s’applique uniquement aux expressions de chaîne.
ASC Spécifie que les valeurs de la propriété spécifiée doivent être triées dans l’ordre croissant, de la valeur la plus basse à la valeur la plus élevée. Il s’agit de la valeur par défaut.
DESC Spécifie que les valeurs de la propriété spécifiée doivent être triées dans l’ordre décroissant, de la valeur la plus élevée à la valeur la plus basse.
LIMIT n Only the first n items will be selected.
SKIP n ignore les premiers n éléments.
Remarques
La clause ORDER BY est appliquée logiquement au résultat de la clause SELECT. La clause ORDER BY peut référencer des éléments dans la liste de sélection à l’aide de leurs alias. La clause ORDER BY peut également référencer d’autres variables actuellement dans l’étendue. Toutefois, si la clause SELECT a été spécifiée avec un modificateur DISTINCT, la clause ORDER BY ne peut référencer que des alias de la clause SELECT.
SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2
Chaque expression de la clause ORDER BY doit évaluer un type qui peut être comparé pour l’inégalité ordonnée (inférieure ou supérieure à, etc.). Ces types sont généralement des primitives scalaires telles que des nombres, des chaînes et des dates. Les RowTypes de types comparables sont également comparables par ordre.
Si votre code itère sur un ensemble ordonné, autre que pour une projection de niveau supérieur, la sortie n’est pas garantie de conserver son ordre.
Dans l’exemple suivant, l’ordre est garanti pour être conservé :
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
Dans la requête suivante, l’ordre de la requête imbriquée est ignoré :
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Pour avoir une opération UNION, UNION ALL, EXCEPT ou INTERSECT ordonnée, utilisez le modèle suivant :
SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...
Mots clés restreints
Les mots clés suivants doivent être placés entre guillemets lorsqu’ils sont utilisés dans une ORDER BY clause :
CROIX
FULL
CLÉ
LEFT
COMMANDE
EXTÉRIEUR
RIGHT
RANGÉE
VALEUR
Classement des requêtes imbriquées
Dans Entity Framework, une expression imbriquée peut être placée n’importe où dans la requête ; l’ordre d’une requête imbriquée n’est pas conservé.
La requête suivante trie les résultats par le nom :
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
Dans la requête suivante, l’ordre de la requête imbriquée est ignoré :
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Exemple :
La requête Entity SQL suivante utilise l’opérateur ORDER BY pour spécifier l’ordre de tri utilisé sur les objets retournés dans une instruction SELECT. La requête est basée sur adventureWorks Sales Model. Pour compiler et exécuter cette requête, procédez comme suit :
Suivez la procédure dans How to : Execute a Query that Returns StructuralType Results.
Transmettez la requête suivante en tant qu’argument à la
ExecuteStructuralTypeQueryméthode :
SELECT VALUE p FROM AdventureWorksEntities.Products
AS p ORDER BY p.ListPrice