ORDER BY (Entity SQL)ORDER BY (Entity SQL)

Specifica il tipo di ordinamento usato per gli oggetti restituiti in un'istruzione SELECT.Specifies the sort order used on objects returned in a SELECT statement.

SintassiSyntax

[ ORDER BY   
   {  
      order_by_expression [SKIP n] [LIMIT n]  
      [ COLLATE collation_name ]  
      [ ASC | DESC ]  
   }  
   [ ,…n ]   
]  

ArgomentiArguments

order_by_expression
Qualsiasi espressione di query valida che specifica una proprietà in base a cui eseguire l'ordinamento.Any valid query expression specifying a property on which to sort. È possibile specificare più espressioni di ordinamento.Multiple sort expressions can be specified. La sequenza delle espressioni di ordinamento nella clausola ORDER BY definisce l'organizzazione del set di risultati ordinato.The sequence of the sort expressions in the ORDER BY clause defines the organization of the sorted result set.

COLLATE {collation_name}COLLATE {collation_name}
Indica che l'operazione ORDER BY deve essere eseguita in base alle regole di confronto specificate in collation_name.Specifies that the ORDER BY operation should be performed according to the collation specified in collation_name. È possibile applicare COLLATE solo alle espressioni stringa.COLLATE is applicable only for string expressions.

ASCASC
Specifica che i valori nella proprietà specificata devono essere ordinati in modo crescente, dal valore più basso a quello più alto.Specifies that the values in the specified property should be sorted in ascending order, from lowest value to highest value. Questa è l'impostazione predefinita.This is the default.

DESCDESC
Specifica che i valori nella proprietà specificata devono essere ordinati in modo decrescente, dal valore più alto a quello più basso.Specifies that the values in the specified property should be sorted in descending order, from highest value to lowest value.

LIMIT nLIMIT n
Verranno selezionati solo i primi n elementi.Only the first n items will be selected.

SKIP nSKIP n
I primi n elementi verranno ignorati.Skips the first n items.

NoteRemarks

La clausola ORDER BY viene applicata logicamente al risultato della clausola SELECT.The ORDER BY clause is logically applied to the result of the SELECT clause. La clausola ORDER BY può fare riferimento agli elementi nell'elenco di selezione tramite i relativi alias.The ORDER BY clause can reference items in the select list by using their aliases. La clausola ORDER BY può fare riferimento anche ad altre variabili attualmente incluse nell'ambito.The ORDER BY clause can also reference other variables that are currently in-scope. Se, tuttavia, la clausola SELECT è stata specificata con un modificatore DISTINCT, la clausola ORDER BY può fare riferimento solo agli alias della clausola SELECT.However, if the SELECT clause has been specified with a DISTINCT modifier, the ORDER BY clause can only reference aliases from the SELECT clause.

SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2

Ogni espressione nella clausola ORDER BY deve restituire un tipo che possa essere confrontato per verificare la disuguaglianza ordinata (minore di o maggiore di e così via).Each expression in the ORDER BY clause must evaluate to some type that can be compared for ordered inequality (less than or greater than, and so on). Questi tipi sono in genere tipi primitivi scalari ad esempio numeri, stringhe e date.These types are generally scalar primitives such as numbers, strings, and dates. Anche i tipi RowTypes di tipi confrontabili possono essere confrontati in termini di ordinamento.RowTypes of comparable types are also order comparable.

Se il codice scorre un set ordinato, non è garantito che l'ordine venga mantenuto, ad eccezione del caso di una proiezione di livello principale.If your code iterates over an ordered set, other than for a top-level projection, the output is not guaranteed to have its order preserved.

-- In the following sample, order is guaranteed to be preserved:  
SELECT C1.FirstName, C1.LastName  
        FROM AdventureWorks.Contact as C1  
        ORDER BY C1.LastName  
-- In the following query ordering of the nested query is ignored.  
SELECT C2.FirstName, C2.LastName  
    FROM (SELECT C1.FirstName, C1.LastName  
        FROM AdventureWorks.Contact as C1  
        ORDER BY C1.LastName) as C2  

Per eseguire un'operazione UNION, UNION ALL, EXCEPT o INTERSECT ordinata, usare il modello seguente:To have an ordered UNION, UNION ALL, EXCEPT, or INTERSECT operation, use the following pattern:

SELECT ...  
FROM ( UNION/EXCEPT/INTERSECT operation )  
ORDER BY ...  

Parole chiave con restrizioniRestricted keywords

Le parole chiave seguenti devono essere racchiuse tra virgolette quando usate in una clausola ORDER BY :The following keywords must be enclosed in quotation marks when used in an ORDER BY clause:

  • CROSSCROSS

  • FULLFULL

  • KEYKEY

  • LEFTLEFT

  • ORDERORDER

  • OUTEROUTER

  • RIGHTRIGHT

  • ROWROW

  • VALUEVALUE

Ordinamento di query annidateOrdering Nested Queries

In Entity Framework un'espressione annidata può essere inserita in una posizione qualsiasi nella query. L'ordine di una query annidata non viene mantenuto.In the Entity Framework, a nested expression can be placed anywhere in the query; the order of a nested query is not preserved.

-- The following query will order the results by the last name.  
SELECT C1.FirstName, C1.LastName  
        FROM AdventureWorks.Contact as C1  
        ORDER BY C1.LastName  
-- In the following query, ordering of the nested query is ignored.  
SELECT C2.FirstName, C2.LastName  
    FROM (SELECT C1.FirstName, C1.LastName  
        FROM AdventureWorks.Contact as C1  
        ORDER BY C1.LastName) as C2  

EsempioExample

Nella query Entity SQLEntity SQL seguente viene usato l'operatore ORDER BY per specificare l'ordinamento usato per gli oggetti restituiti in un'istruzione SELECT.The following Entity SQLEntity SQL query uses the ORDER BY operator to specify the sort order used on objects returned in a SELECT statement. La query è basata sul modello Sales di AdventureWorks.The query is based on the AdventureWorks Sales Model. Per compilare ed eseguire questa query, effettuare le operazioni seguenti:To compile and run this query, follow these steps:

  1. Seguire la procedura indicata in Procedura: eseguire una query che restituisce risultati StructuralType.Follow the procedure in How to: Execute a Query that Returns StructuralType Results.

  2. Passare la query seguente come argomento al metodo ExecuteStructuralTypeQuery :Pass the following query as an argument to the ExecuteStructuralTypeQuery method:

SELECT VALUE p FROM AdventureWorksEntities.Products 
    AS p order by p.ListPrice

Vedere ancheSee Also

Espressioni di queryQuery Expressions
Riferimento a Entity SQLEntity SQL Reference
SKIPSKIP
LIMITLIMIT
TOPTOP