Partilhar via


Classificar linhas (Visual Database Tools)

Aplica-se a:SQL Server

Você pode ordenar as linhas em um resultado de consulta. Ou seja, você pode nomear uma determinada coluna 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 sequência de agrupamento da coluna. Você pode alterar a sequência de agrupamento na caixa de diálogo Agrupamento.

Há várias maneiras de classificar os resultados da consulta:

  • Você pode organizar as linhas em ordem crescente ou decrescente

    Por padrão, o SQL usa colunas de ordenação para organizar as linhas em ordem crescente. Por exemplo, para organizar os títulos dos livros por preço crescente, basta classificar as linhas pela coluna de preço. O SQL resultante pode ter esta aparência:

    SELECT *
    FROM titles
    ORDER BY price;
    

    Por outro lado, se quiser organizar os títulos com os livros mais caros primeiro, pode especificar explicitamente uma ordem decrescente. Ou seja, você indica que as linhas de resultado devem ser organizadas por valores decrescentes da coluna de preço. O SQL resultante pode ter esta aparência:

    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, ordenando primeiro por estado e depois por cidade. O SQL resultante pode ter esta aparência:

    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. O SQL resultante pode ter esta aparência:

    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 um título de livro - com os livros que pagam o maior royalty por cópia aparecendo primeiro. O SQL resultante pode ter esta aparência:

    SELECT title,
           price * royalty / 100 AS royalty_per_unit
    FROM titles
    ORDER BY royalty_per_unit DESC;
    

    (A fórmula para calcular os royalties que cada livro ganha por exemplar é enfatizada.)

    Para calcular uma coluna derivada, você pode usar a sintaxe SQL, como no exemplo anterior, ou 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 nessa cidade - com as cidades contendo muitos autores aparecendo primeiro. O SQL resultante pode ter esta aparência:

    SELECT city,
           state,
           COUNT(*)
    FROM authors
    GROUP BY city, state
    ORDER BY COUNT(*) DESC, state;
    

    A consulta usa state como uma coluna de classificação secundária. Assim, se dois estados têm o mesmo número de autores, esses estados aparecem em ordem alfabética.

  • Você pode classificar usando dados internacionais

    Isso é; Você pode classificar uma coluna usando convenções de agrupamento que diferem das convenções padrão para essa coluna. Por exemplo, você pode escrever uma consulta que recupere todos os títulos de livros de Jaime Patiño. Para exibir os títulos em ordem alfabética, use uma sequência de agrupamento em espanhol para a coluna de título. O SQL resultante pode ter esta aparência:

    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;