top of page

ORDER BY no SQL Server

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 30 de mai.
  • 2 min de leitura


Organizar os resultados de uma consulta é essencial para análise e apresentação dos dados. É aí que entra o ORDER BY. A cláusula ORDER BY é usada para ordenar o resultado de uma consulta SQL com base em uma ou mais colunas. Por padrão, a ordenação é crescente (ASC), mas também é possível ordenar de forma decrescente (DESC).

O ORDER BY sempre deve ser a última cláusula da sua consulta, ou seja, ele vem depois do WHERE, GROUP BY ou HAVING.


Sintaxe:


SELECT coluna1, coluna2

FROM nome_da_tabela

ORDER BY coluna1 [ASC | DESC];




ORDER BY em ordem crescente


ORDER BY PFUNC.NOME ASC




ORDER BY em ordem decrescente


ORDER BY PFUNC.NOME DESC




ORDER BY personalizado


Você pode usar expressões condicionais, como a cláusula CASE, para especificar uma ordem personalizada. Isso permite que você defina uma lógica personalizada para a ordenação

 

-- Exemplo 1

ORDER BY CASE WHEN coluna = 'A' THEN 1 WHEN coluna = 'B' THEN 2 ELSE 3 END;

 

-- Exemplo 2

ORDER BY

 

    CASE PFUNC.CODSITUACAO

        WHEN 'A' THEN 1

        WHEN 'F' THEN 2

        WHEN 'D' THEN 3

        ELSE 4 -- Caso haja outros valores, eles serão ordenados por último

    END

 

 -- Exemplo 3

ORDER BY 

 

CASE PFUNC.CODSITUACAO

       WHEN 'D' THEN 1

             ELSE 2

                    END, 

PFUNC.NOME



ORDER BY com data


Considerando data no formato dd/mm/yyyy


ORDER BY CONVERT(DATE, DATA_REF, 103)


Para saber mais sobre datas, clique aqui




ORDER BY com múltiplas colunas


Queremos ordenar pelos pedidos mais recentes e, em caso de empate na data, pelo maior valor:


SELECT PedidoID, ClienteID, ValorTotal, DataPedido

FROM Pedidos

ORDER BY DataPedido DESC, ValorTotal DESC;




ORDER BY por posição da coluna


Você também pode usar a posição da coluna na cláusula ORDER BY (não é o mais recomendado, mas pode ser útil em alguns cenários rápidos):


SELECT Nome, Cidade

FROM Clientes

ORDER BY 2;  -- Ordena pela segunda coluna (Cidade)




ORDER BY com alias


É possível ordenar usando uma coluna derivada, como por exemplo, o ano da data:


SELECT Nome, YEAR(DataNascimento) AS AnoNascimento

FROM Clientes

ORDER BY AnoNascimento;

 

 

SELECT Nome, DataNascimento

FROM Clientes

ORDER BY YEAR(DataNascimento);


Posts recentes

Ver tudo
Trabalhando com datas no SQL Server

O tratamento de datas é uma parte essencial do dia a dia de quem trabalha com banco de dados no SQL Server. Seja para filtrar registros...

 
 

© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page