Compartilhar via


Classificar linhas (Visual Database Tools)

aplica-se a: do SQL Server

Você pode ordenar as linhas em um resultado de consulta. Ou seja, você pode nomear uma coluna ou um conjunto específico de colunas cujos valores determinam a ordem das linhas no conjunto de resultados.

Nota

A ordem de classificação é determinada em parte pela sequência de ordenação da coluna. Você pode alterar a sequência de ordenação na caixa de diálogo de Ordenação.

Há várias maneiras pelas quais você pode classificar os resultados da consulta:

  • Você pode organizar linhas em ordem crescente ou decrescente

    Por padrão, o SQL usa colunas order-by para organizar linhas em ordem crescente. Por exemplo, para organizar os títulos do livro 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 você quiser organizar os títulos começando pelos livros mais caros, você pode especificar uma ordem decrescente de preços. 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 os royalties mais altos 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 cópia é 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, além do 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. Portanto, se dois estados tiverem o mesmo número de autores, esses estados aparecerão em ordem alfabética.

  • Você pode classificar usando dados internacionais

    Isto é; você pode classificar uma coluna usando convenções de ordenação que diferem das convenções padrão para essa coluna. Por exemplo, você pode escrever uma consulta que recupera todos os títulos do livro de Jaime Patiño. Para exibir os títulos em ordem alfabética, use uma sequência de ordenação 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;