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

Vedi anche