Clausola Order By (Visual Basic)
Specifica l'ordinamento per un risultato della query.
Sintassi
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
Parti
orderExp1
Obbligatorio. Uno o più campi del risultato della query corrente che identificano come ordinare i valori restituiti. I nomi dei campi devono essere separati da virgole (,). È possibile identificare ogni campo come ordinato in ordine crescente o decrescente usando le parole chiave Ascending
o Descending
. Se non viene specificata alcuna parola chiave Ascending
o Descending
, l'ordinamento predefinito è crescente. Ai campi di ordinamento viene assegnata la precedenza da sinistra a destra.
Osservazioni:
È possibile utilizzare la clausola Order By
per ordinare i risultati di una query. La clausola Order By
può ordinare solo un risultato in base alla variabile di intervallo per l'ambito corrente. Ad esempio, la clausola Select
introduce un nuovo ambito in un'espressione di query con nuove variabili di iterazione per tale ambito. Le variabili di intervallo definite prima di una clausola Select
in una query non sono disponibili dopo la clausola Select
. Pertanto, se si desidera ordinare i risultati in base a un campo non disponibile nella clausola Select
, è necessario inserire la clausola Order By
prima della clausola Select
. Un esempio di quando è necessario eseguire questa operazione è quando si vuole ordinare la query in base ai campi che non vengono restituiti come parte del risultato.
L'ordine crescente e decrescente per un campo è determinato dall'implementazione dell'interfaccia IComparable per il tipo di dati del campo. Se il tipo di dati non implementa l'interfaccia IComparable, l'ordinamento viene ignorato.
Esempio 1
Nell'espressione di query seguente viene utilizzata una clausola From
per dichiarare una variabile di intervallo book
per la raccolta books
. La clausola Order By
ordina il risultato della query in base al prezzo in ordine crescente (impostazione predefinita). I libri con lo stesso prezzo vengono ordinati in base al titolo in ordine crescente. La clausola Select
seleziona le proprietà Title
e Price
come valori restituiti dalla query.
Dim titlesAscendingPrice = From book In books
Order By book.Price, book.Title
Select book.Title, book.Price
Esempio 2
L'espressione di query seguente usa la clausola Order By
per ordinare il risultato della query in base al prezzo in ordine decrescente. I libri con lo stesso prezzo vengono ordinati in base al titolo in ordine crescente.
Dim titlesDescendingPrice = From book In books
Order By book.Price Descending, book.Title
Select book.Title, book.Price
Esempio 3
L'espressione di query seguente usa una clausola Select
per selezionare il titolo del libro, il prezzo, la data di pubblicazione e l'autore. Popola quindi i campi Title
, Price
, PublishDate
e Author
della variabile di intervallo per il nuovo ambito. La clausola Order By
ordina la nuova variabile di intervallo in base al nome dell'autore, al titolo del libro e quindi al prezzo. Ogni colonna viene ordinata nell'ordine predefinito (crescente).
Dim bookOrders =
From book In books
Select book.Title, book.Price, book.PublishDate, book.Author
Order By Author, Title, Price