Order By, clause (Visual Basic)
Spécifie l’ordre de tri d’un résultat de requête.
Syntaxe
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
Éléments
orderExp1
Obligatoire. Un ou plusieurs champs du résultat de la requête actuelle qui identifient comment classer les valeurs retournées. Les noms de champs doivent être séparés par des virgules (,). Vous pouvez identifier chaque champ comme trié dans l’ordre croissant ou décroissant à l’aide des mots clés Ascending
ou Descending
. Si aucun mot clé Ascending
ou Descending
n’est spécifié, l’ordre de tri par défaut est croissant. Les champs d’ordre de tri sont prioritaires de gauche à droite.
Notes
Vous pouvez utiliser la clause Order By
pour trier les résultats d’une requête. La clause Order By
ne peut trier un résultat qu’en fonction de la variable de plage pour l’étendue actuelle. Par exemple, la clause Select
introduit une nouvelle étendue dans une expression de requête avec de nouvelles variables d’itération pour cette étendue. Les variables de plage définies avant une clause Select
dans une requête ne sont pas disponibles après la clause Select
. Par conséquent, si vous souhaitez classer vos résultats par un champ qui n’est pas disponible dans la clause Select
, vous devez placer la clause Order By
avant la clause Select
. Par exemple, lorsque vous souhaitez trier votre requête par champs qui ne sont pas retournés dans le cadre du résultat.
L’ordre croissant et décroissant d’un champ est déterminé par l’implémentation de l’interface IComparable pour le type de données du champ. Si le type de données n’implémente pas l’interface IComparable, l’ordre de tri est ignoré.
Exemple 1
L’expression de requête suivante utilise une clause From
pour déclarer une variable de portée book
pour la collection books
. La clause Order By
trie le résultat de la requête par prix dans l’ordre croissant (valeur par défaut). Les livres avec le même prix sont triés par titre dans l’ordre croissant. La clause Select
sélectionne les propriétés Title
et Price
comme valeurs retournées par la requête.
Dim titlesAscendingPrice = From book In books
Order By book.Price, book.Title
Select book.Title, book.Price
Exemple 2
L’expression de requête suivante utilise la clause Order By
pour trier le résultat de la requête par prix dans l’ordre décroissant. Les livres avec le même prix sont triés par titre dans l’ordre croissant.
Dim titlesDescendingPrice = From book In books
Order By book.Price Descending, book.Title
Select book.Title, book.Price
Exemple 3
L’expression de requête suivante utilise une clause Select
pour sélectionner le titre du livre, le prix, la date de publication et l’auteur. Il remplit ensuite les champs Title
, Price
, PublishDate
et Author
de la variable de plage pour la nouvelle étendue. La clause Order By
classe la nouvelle variable de plage par nom d’auteur, titre du livre, puis prix. Chaque colonne est triée dans l’ordre par défaut (croissant).
Dim bookOrders =
From book In books
Select book.Title, book.Price, book.PublishDate, book.Author
Order By Author, Title, Price