Classificação de linhas
Você pode ordenar as linhas em um resultado de consulta. Ou seja, você pode nomear uma coluna específica ou conjunto de colunas cujos valores determinam a ordem das linhas no conjunto de resultados.
Observação |
---|
A ordem de classificação é determinada em parte pela seqüência de agrupamento da coluna. Você pode alterar a seqüência de agrupamento na Caixa de diálogo agrupamento. |
Há várias maneiras em que você pode classificar os resultados da consulta:
Você pode ordenar as linhas em ordem crescente ou decrescente por padrão, o SQL usa Ordenar por colunas para ordenar as linhas em ordem crescente. Por exemplo, para organizar os títulos de livros por ordem crescente de preço, simplesmente classifique as linhas pela coluna preço. A SQL resultante pode parecer com isso:
SELECT * FROM titles ORDER BY price
Por outro lado, se você deseja ordenar os títulos com os livros mais caros primeiro, você pode especificar explicitamente uma ordem do mais alto primeiro. Ou seja, você indica que as linhas do resultado devem ser organizadas por valores decrescentes da coluna preço. A SQL resultante pode parecer com isso:
SELECT * FROM titles ORDER BY price DESC
Você pode classificar por várias colunas , por exemplo, você pode criar um conjunto de resultados com uma linha para cada autor e ordenar primeiro por estado e depois por cidade. A SQL resultante pode parecer com isso:
SELECT * FROM authors ORDER BY state, city
Você pode classificar por colunas que não aparecem no conjunto de resultados , por exemplo, você pode criar um conjunto de resultados com os títulos mais caros primeiro, mesmo que os preços não apareçam. A SQL resultante pode parecer com isso:
SELECT title_id, title FROM titles ORDER BY price DESC
Você pode classificar por colunas derivadas , por exemplo, você pode criar um conjunto de resultados no qual cada linha contém o título de um livro — com os livros que pagam o royalty mais alto por cópia aparecendo primeiro. A SQL resultante pode parecer com isso:
SELECT title, price * royalty / 100 as royalty_per_unit FROM titles ORDER BY royalty_per_unit DESC
(A fórmula para calcular o royalty que cada livro recebe por cópia é enfatizada).
Para calcular uma coluna derivada, você pode usar a sintaxe SQL, como no exemplo anterior, ou você pode usar uma função definida pelo usuário que retorna um valor escalar. Para obter mais informações sobre funções definidas pelo usuário, consulte a documentação do SQL Server.
Você pode classificar linhas agrupadas , por exemplo; Você pode criar um conjunto de resultados no qual cada linha descreve uma cidade mais o número de autores daquela cidade — com as cidades que contêm muitos autores aparecendo primeiro. A SQL resultante pode parecer com isso:
SELECT city, state, COUNT(*) FROM authors GROUP BY city, state ORDER BY COUNT(*) DESC, state
Observe que a consulta usa state como uma coluna de classificação secundária. Portanto, se dois estados tiverem o mesmo número de autores, esses estados irão aparecer em ordem alfabética.
Você pode classificar utilizando dados internacionais , ou seja; Você pode classificar uma coluna utilizando convenções de agrupamento que diferem das convenções padrão para essa coluna. Por exemplo, você pode escrever uma consulta que recupera todos os títulos de livros por Patiño de Jaime. Para exibir os títulos em ordem alfabética, você pode usar uma seqüência para a coluna de título de agrupamento de espanhol. A SQL resultante pode parecer com isso:
SELECT title FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id WHERE au_fname = 'Jaime' AND au_lname = 'Patiño' ORDER BY title COLLATE SQL_Spanish_Pref_CP1_CI_AS
For more information, see Como: Use a consulta e o modo de exibição Designer com dados internacionais. Para obter mais informações sobre a classificação de resultados, consulte Classificar e agrupar os resultados da consulta.