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

Voir aussi