Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Especifica a ordem de classificação usada em objetos retornados em uma instrução SELECT.
Sintaxe
[ ORDER BY
{
order_by_expression [SKIP n] [LIMIT n]
[ COLLATE collation_name ]
[ ASC | DESC ]
}
[ ,…n ]
]
Argumentos
order_by_expression Qualquer expressão de consulta válida que especifique uma propriedade na qual classificar. Várias expressões de classificação podem ser especificadas. A sequência das expressões de classificação na cláusula ORDER BY define a organização do conjunto de resultados classificado.
COLLATE {collation_name} Especifica que a operação ORDER BY deve ser executada de acordo com a ordenação especificada em collation_name. COLLATE é aplicável somente para expressões de cadeia de caracteres.
ASC Especifica que os valores na propriedade especificada devem ser classificados em ordem crescente, do valor mais baixo ao mais alto. Esse é o padrão.
DESC Especifica que os valores na propriedade especificada devem ser classificados em ordem decrescente, do valor mais alto ao menor.
LIMITE n Somente os primeiros n itens serão selecionados.
SKIP n Ignora os primeiros n itens.
Observações
A cláusula ORDER BY é logicamente aplicada ao resultado da cláusula SELECT. A cláusula ORDER BY pode referenciar itens na lista de seleção usando seus aliases. A cláusula ORDER BY também pode referenciar outras variáveis que estão atualmente no escopo. No entanto, se a cláusula SELECT tiver sido especificada com um modificador DISTINCT, a cláusula ORDER BY só poderá referenciar aliases da cláusula SELECT.
SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2
Cada expressão na cláusula ORDER BY deve ser avaliada para algum tipo que possa ser comparado para a desigualdade ordenada (menor ou maior que, e assim por diante). Esses tipos geralmente são primitivos escalares, como números, cadeias de caracteres e datas. RowTypes de tipos comparáveis também são comparáveis à ordem.
Se o código iterar em um conjunto ordenado, exceto para uma projeção de nível superior, a saída não terá a ordem preservada.
No exemplo a seguir, a ordem é garantida para ser preservada:
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
Na consulta a seguir, a ordenação da consulta aninhada é ignorada:
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Para ter uma operação UNION, UNION ALL, EXCEPT ou INTERSECT ordenada, use o seguinte padrão:
SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...
Palavras-chave restritas
As seguintes palavras-chave devem ser colocadas entre aspas quando usadas em uma ORDER BY cláusula:
CRUZ
FULL
CHAVE
LEFT
ORDEM
EXTERNO
RIGHT
LINHA
VALOR
Ordenando consultas aninhadas
No Entity Framework, uma expressão aninhada pode ser colocada em qualquer lugar na consulta; a ordem de uma consulta aninhada não é preservada.
A consulta a seguir ordenará os resultados pelo sobrenome:
SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName
Na consulta a seguir, a ordenação da consulta aninhada é ignorada:
SELECT C2.FirstName, C2.LastName
FROM (SELECT C1.FirstName, C1.LastName
FROM AdventureWorks.Contact as C1
ORDER BY C1.LastName) as C2
Exemplo
A consulta SQL de entidade a seguir usa o operador ORDER BY para especificar a ordem de classificação usada em objetos retornados em uma instrução SELECT. A consulta é baseada no Modelo de Vendas adventureworks. Para compilar e executar essa consulta, siga estas etapas:
Siga o procedimento em How to: Execute a Query that Returns StructuralType Results.
Passe a consulta a seguir como um argumento para o
ExecuteStructuralTypeQuerymétodo:
SELECT VALUE p FROM AdventureWorksEntities.Products
AS p ORDER BY p.ListPrice