Cláusula ORDER BY (SQL Server Compact)
Especifica o ordem de classificação para o conjunto de resultados. A cláusula ORDER BY não é válida em subconsultas. Você também pode ter uma opção para buscar apenas uma janela ou página de resultados do conjunto de resultados usando a cláusula OFFSET-FETCH.
Sintaxe
[ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n][<offset_fetch>] ]
<offset_fetch> ::= {OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS } [FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY ]}
Argumentos
order_by_expression
Especifica uma coluna na qual classificar. Uma coluna de classificação pode ser especificada com um nome ou alias de coluna, que pode ser qualificado pelo nome da tabela ou uma expressão. Várias colunas de classificação podem ser especificadas. A sequência das colunas de classificação na cláusula ORDER BY define a organização do conjunto de resultados classificado.A cláusula ORDER BY pode incluir itens que não aparecem na lista de seleção.
Dica
As colunas de tipo de dados ntext e image não podem ser usadas em uma cláusula ORDER BY.
ASC
Especifica que os valores na coluna especificada devem ser classificados em ordem crescente, do valor mais baixo para o mais alto.DESC
Especifica que os valores na coluna definida devem ser classificados na ordem decrescente, do menor valor para o maior. Valores nulos são tratados como os menores valores possíveis.OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
Especifica o número de linhas a serem ignoradas antes de iniciar o retorno de linhas da expressão de consulta. O argumento da cláusula OFFSET pode ser um inteiro ou uma expressão maior ou igual a zero. Você pode usar tanto ROW quanto ROWs.FETCH {FIRST|NEXT} <rowcount expression> {ROW|ROWS} ONLY
Especifica o número de linhas a serem retornadas depois do processamento da cláusula OFFSET. O argumento da cláusula OFFSET pode ser um inteiro ou uma expressão maior ou igual a zero. Você pode usar tanto ROW quanto ROWs. Da mesma forma, você pode usar tanto FIRST quanto NEXT.
Comentários
Não há limite para o número de itens na cláusula ORDER BY.
Se a cláusula ORDER BY for usada com uma instrução UNION, as colunas nas quais você classificar deverão ser os nomes ou aliases de coluna especificados na primeira instrução SELECT. Por exemplo, a primeira das seguintes instruções SELECT obtém êxito enquanto a segunda falha.
Essa instrução obtém êxito porque col1 pertence à primeira tabela (t1)
Create t1 (col1 int, col2 int);
Create t2 (col3 int, col4 int);
SELECT * from t1 UNION SELECT * from t2 ORDER BY col1;
Essa instrução falha porque col3 não pertence à primeira tabela (t1)
SELECT * from t1 UNION SELECT * from t2 ORDER BY col3;
Exemplo
O exemplo a seguir lista funcionários pelos seus nomes.
SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name
Os seguintes exemplos demonstram o uso da cláusula OFFSET-FETCH com ORDER BY, onde ignoram-se as 10 primeiras linhas do conjunto de resultados classificado e retornam-se as linhas restantes.
SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS;