Compartilhar via


ORDER BY (Entity SQL)

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:

  1. Siga o procedimento em How to: Execute a Query that Returns StructuralType Results.

  2. Passe a consulta a seguir como um argumento para o ExecuteStructuralTypeQuery método:

SELECT VALUE p FROM AdventureWorksEntities.Products 
    AS p ORDER BY p.ListPrice

Consulte também