domingo, 3 de julho de 2016

Select ORDER BY

Olá!

Para realizar a ordenação da resposta de uma consulta feita no banco de dados (DB), usamos o comando Order By. Que pode ordenar a resposta de acordo com os valores de uma ou mais colunas, sendo que o ordenamento é feito de forma ascendente (ASC) ou descendente (DESC).

Quando não especificado a forma de ordenação, o SQL tem por padrão na maioria dos bancos de dados definir ASC no Order By.

Veja os exemplos abaixo.

Tabela utilizada para os exemplos:
PESSOA
CD_PESSOANOMESOBRENOMEIDADE
1FelipeBarbosa23
2AnaVieira20
3JoãoSantos19
4AlineSilva21
5MairaDantas25


  • Consulta sem ordenação, retorna os dados conforme estão cadastrados no DB.
SQL:
          SELECT CD_PESSOA
                        , NOME
                        , SOBRENOME
                        , IDADE
             FROM PESSOA
           WHERE CD_PESSOA > 0

Resposta:
resposta_da_consulta
CD_PESSOANOMESOBRENOMEIDADE
1FelipeBarbosa23
2AnaVieira20
3JoãoSantos19
4AlineSilva21
5MairaDantas25

  • Consulta com ordernação pela coluna NOME:
SQL:
          SELECT CD_PESSOA
                        , NOME
                        , SOBRENOME
                        , IDADE
             FROM PESSOA
           WHERE CD_PESSOA > 0
     ORDER BY NOME

Resposta:
resposta_da_consulta
CD_PESSOANOMESOBRENOMEIDADE
4AlineSilva21
2AnaVieira20
1FelipeBarbosa23
3JoãoSantos19
5MairaDantas25
.
Veja que os registros estão ordenados de forma crescente pela coluna NOME.

  • Consulta com ordenação realizada por dois campos da tabela:
SQL:
          SELECT CD_PESSOA
                        , NOME
                        , SOBRENOME
                        , IDADE
             FROM PESSOA
           WHERE CD_PESSOA > 0
    ORDER BY NOME
                        , IDADE
Resposta:
resposta_da_consulta
CD_PESSOANOMESOBRENOMEIDADE
4AlineSilva21
2AnaVieira20
1FelipeBarbosa23
3JoãoSantos19
5MairaDantas25

A resposta é a mesma da ordenação por uma coluna. Pois, primeiro é feito a ordenação da coluna NOME e depois da coluna IDADE. Então, a ordenação por mais de uma coluna é visível para quando em uma ou mais das colunas que estão no ordenamento possui valores iguais.


  • Consulta com ordenação diferentes para os campos.

SQL:
          SELECT CD_PESSOA
                        , NOME
                        , SOBRENOME
                        , IDADE
             FROM PESSOA
           WHERE CD_PESSOA > 0
    ORDER BY NOME ASC
                        , IDADE DESC

Com o SQL acima a ordenação da consulta seria primeiramente pela coluna NOME de forma ascendente, e depois pela coluna IDADE de forma decrescente.

Atenção:
Ao realizar a ordenação por vários campos fique atento, pois quando não especificamos ASC ou DESC o SQL atribui ASC para o campo por padrão. Exemplo:

SQL:
          SELECT CD_PESSOA
                        , NOME
                        , SOBRENOME
                        , IDADE
             FROM PESSOA
           WHERE CD_PESSOA > 0
    ORDER BY CD_PESSOA
                        , NOME
                        , SOBRENOME
                        , IDADE DESC

Neste exemplo somente o campo IDADE será ordenado de forma descendente, os demais campos serão ordenados de forma ascendente.

O comando Order By é ótimo para organizar a resposta de uma consulta ao DB, de acordo com a necessidade de cada um.

Consultar a relação de Termos e Abreviaturas acesse aqui.
Até o próximo post!

Nenhum comentário:

Postar um comentário