Clausola Order By (Visual Basic)Order By Clause (Visual Basic)

Specifica l'ordinamento per il risultato di una query.Specifies the sort order for a query result.

SintassiSyntax

Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]  

PartiParts

orderExp1
Obbligatorio.Required. Uno o più campi dal risultato della query corrente che identificano la modalità di ordinamento dei valori restituiti.One or more fields from the current query result that identify how to order the returned values. I nomi dei campi devono essere separati da virgole (,).The field names must be separated by commas (,). È possibile identificare ogni campo come ordinato in ordine crescente o decrescente usando le parole chiave Ascending o Descending.You can identify each field as sorted in ascending or descending order by using the Ascending or Descending keywords. Se non viene specificata alcuna parola chiave Ascending o Descending, l'ordinamento predefinito è crescente.If no Ascending or Descending keyword is specified, the default sort order is ascending. Ai campi di ordinamento viene assegnata la precedenza da sinistra a destra.The sort order fields are given precedence from left to right.

NoteRemarks

È possibile utilizzare la clausola Order By per ordinare i risultati di una query.You can use the Order By clause to sort the results of a query. La clausola Order By può ordinare solo un risultato in base alla variabile di intervallo per l'ambito corrente.The Order By clause can only sort a result based on the range variable for the current scope. Ad esempio, la clausola Select introduce un nuovo ambito in un'espressione di query con nuove variabili di iterazione per tale ambito.For example, the Select clause introduces a new scope in a query expression with new iteration variables for that scope. Le variabili di intervallo definite prima di una clausola Select in una query non sono disponibili dopo la clausola Select.Range variables defined before a Select clause in a query are not available after the Select clause. Se pertanto 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.Therefore, if you want to order your results by a field that is not available in the Select clause, you must put the Order By clause before the Select clause. Un esempio di quando è necessario eseguire questa operazione è quando si desidera ordinare la query in base a campi che non vengono restituiti come parte del risultato.One example of when you would have to do this is when you want to sort your query by fields that are not returned as part of the result.

L'ordine crescente e decrescente per un campo è determinato dall'implementazione dell'interfaccia IComparable per il tipo di dati del campo.Ascending and descending order for a field is determined by the implementation of the IComparable interface for the data type of the field. Se il tipo di dati non implementa l'interfaccia IComparable, l'ordinamento viene ignorato.If the data type does not implement the IComparable interface, the sort order is ignored.

EsempioExample

Nell'espressione di query seguente viene utilizzata una clausola From per dichiarare una variabile di intervallo book per la raccolta books.The following query expression uses a From clause to declare a range variable book for the books collection. La clausola Order By Ordina il risultato della query in base al prezzo in ordine crescente (impostazione predefinita).The Order By clause sorts the query result by price in ascending order (the default). I libri con lo stesso prezzo vengono ordinati in base al titolo in ordine crescente.Books with the same price are sorted by title in ascending order. La clausola Select seleziona le proprietà Title e Price come valori restituiti dalla query.The Select clause selects the Title and Price properties as the values returned by the query.

Dim titlesAscendingPrice = From book In books
                           Order By book.Price, book.Title
                           Select book.Title, book.Price

EsempioExample

Nell'espressione di query seguente viene utilizzata la clausola Order By per ordinare il risultato della query in base al prezzo in ordine decrescente.The following query expression uses the Order By clause to sort the query result by price in descending order. I libri con lo stesso prezzo vengono ordinati in base al titolo in ordine crescente.Books with the same price are sorted by title in ascending order.

Dim titlesDescendingPrice = From book In books
                            Order By book.Price Descending, book.Title
                            Select book.Title, book.Price

EsempioExample

Nell'espressione di query seguente viene utilizzata una clausola Select per selezionare titolo, prezzo, data di pubblicazione e autore del libro.The following query expression uses a Select clause to select the book title, price, publish date, and author. Quindi popola i campi Title, Price, PublishDate e Author della variabile di intervallo per il nuovo ambito.It then populates the Title, Price, PublishDate, and Author fields of the range variable for the new scope. La clausola Order By Ordina la nuova variabile di intervallo in base al nome dell'autore, al titolo del libro e quindi al prezzo.The Order By clause orders the new range variable by author name, book title, and then price. Ogni colonna viene ordinata in base all'ordine predefinito (ascendente).Each column is sorted in the default order (ascending).

Dim bookOrders =
  From book In books
  Select book.Title, book.Price, book.PublishDate, book.Author
  Order By Author, Title, Price

Vedere ancheSee also