Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Specifica l'ordinamento utilizzato per gli oggetti restituiti in un'istruzione SELECT.
Sintassi
[ ORDER BY
{
order_by_expression [SKIP n] [LIMIT n]
[ COLLATE collation_name ]
[ ASC | DESC ]
}
[ ,…n ]
]
Argomenti
order_by_expression Qualsiasi espressione di query valida che specifica una proprietà in base alla quale eseguire l'ordinamento. È possibile specificare più espressioni di ordinamento. La sequenza delle espressioni di ordinamento nella clausola ORDER BY definisce l'organizzazione del set di risultati ordinato.
COLLATE {collation_name} Specifica che l'operazione ORDER BY deve essere eseguita in base alle regole di confronto specificate in collation_name. COLLATE è applicabile solo per le espressioni stringa.
ASC Specifica che i valori nella proprietà specificata devono essere ordinati in ordine crescente, dal valore più basso al valore più alto. Si tratta dell'impostazione predefinita.
DESC Specifica che i valori nella proprietà specificata devono essere ordinati in ordine decrescente, dal valore più alto al valore più basso.
LIMIT n Verrà selezionato Solo i primi n elementi.
SKIP n ignora i primi n elementi.
Osservazioni:
La clausola ORDER BY viene applicata logicamente al risultato della clausola SELECT. La clausola ORDER BY può fare riferimento agli elementi nell'elenco di selezione usando i relativi alias. La clausola ORDER BY può anche fare riferimento ad altre variabili attualmente incluse nell'ambito. Tuttavia, se la clausola SELECT è stata specificata con un modificatore DISTINCT, la clausola ORDER BY può fare riferimento solo agli alias della clausola SELECT.
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 può essere confrontato per la disuguaglianza ordinata (minore o maggiore di e così via). Questi tipi sono in genere primitive scalari, ad esempio numeri, stringhe e date. Anche i RowType di tipi confrontabili sono confrontabili in ordine.
Se il codice esegue l'iterazione su un set ordinato, diverso da per una proiezione di primo livello, l'output non garantisce che l'ordine venga mantenuto.
Nell'esempio seguente viene garantito che l'ordine venga mantenuto:
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
Nella query seguente l'ordinamento della query nidificata viene ignorato:
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Per disporre di un'operazione UNION, UNION ALL, EXCEPT o INTERSECT ordinata, utilizzare il modello seguente:
SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...
Parole chiave con restrizioni
Le parole chiave seguenti devono essere racchiuse tra virgolette quando vengono usate in una ORDER BY clausola :
Croce
COMPLETO
KEY
Sinistra
ORDINE
esterno
DIRITTO
ROW
VALORE
Ordinamento di query annidate
In Entity Framework un'espressione nidificata può essere inserita in qualsiasi punto della query; l'ordine di una query nidificata non viene mantenuto.
La query seguente ordina i risultati in base al cognome:
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
Nella query seguente l'ordinamento della query nidificata viene ignorato:
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Esempio
La query Entity SQL seguente usa l'operatore ORDER BY per specificare l'ordinamento usato per gli oggetti restituiti in un'istruzione SELECT. La query si basa sul modello AdventureWorks Sales. Per compilare ed eseguire questa query, seguire questa procedura:
Seguire la procedura descritta in Procedura: Eseguire una query che restituisce risultati StructuralType.
Passare la query seguente come argomento al
ExecuteStructuralTypeQuerymetodo :
SELECT VALUE p FROM AdventureWorksEntities.Products
AS p ORDER BY p.ListPrice