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_PESSOA | NOME | SOBRENOME | IDADE |
1 | Felipe | Barbosa | 23 |
2 | Ana | Vieira | 20 |
3 | João | Santos | 19 |
4 | Aline | Silva | 21 |
5 | Maira | Dantas | 25 |
- 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_PESSOA | NOME | SOBRENOME | IDADE |
1 | Felipe | Barbosa | 23 |
2 | Ana | Vieira | 20 |
3 | João | Santos | 19 |
4 | Aline | Silva | 21 |
5 | Maira | Dantas | 25 |
- 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_PESSOA | NOME | SOBRENOME | IDADE |
4 | Aline | Silva | 21 |
2 | Ana | Vieira | 20 |
1 | Felipe | Barbosa | 23 |
3 | João | Santos | 19 |
5 | Maira | Dantas | 25 |
.
Veja que os registros estão ordenados de forma crescente pela coluna NOME.
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_PESSOA | NOME | SOBRENOME | IDADE |
4 | Aline | Silva | 21 |
2 | Ana | Vieira | 20 |
1 | Felipe | Barbosa | 23 |
3 | João | Santos | 19 |
5 | Maira | Dantas | 25 |
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:
Neste exemplo somente o campo IDADE será ordenado de forma descendente, os demais campos serão ordenados de forma ascendente.
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.
Até o próximo post!
Nenhum comentário:
Postar um comentário