- ORDER BY é uma cláusula SQL que é usada com a consulta SELECT para buscar os registros em ordem crescente ou decrescente de uma tabela.
- Assim como classificamos os valores inteiros e de string armazenados na coluna das tabelas, da mesma forma, podemos classificar as datas armazenadas na coluna da tabela SQL.
- Todos os registros serão, por padrão, classificados em ordem crescente. Para ordenar os registros em ordem decrescente, é utilizada a palavra-chave DESC.
Vejamos alguns exemplos práticos para entender esse conceito com mais clareza. Usaremos o banco de dados MySQL para escrever todas as consultas.
Considere que criamos uma tabela denominada funcionários no banco de dados MySQL com os seguintes dados:
EU IA | Nome | Salário | Data de ingresso | Data de nascimento |
---|---|---|---|---|
1 | RohitMais | 50.000 | 08/02/2020 | 28/01/1991 18:06:08 |
2 | Kunal Mohit | 34.000 | 2021-01-01 | 15/05/1990 19:10:00 |
3 | Saurabh Jha | 61.000 | 01-05-2015 | 20/02/1983 12:18:45 |
4 | Anant Desai | 59.000 | 27/08/2018 | 29/06/1978 15:45:13 |
5 | Krishna Sharma | 48.000 | 23/10/2010 | 21/03/1999 02:14:56 |
6 | Bhavesh Jain | 37.000 | 03/07/2021 | 02/08/1998 13:00:01 |
Exemplo 1:
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente de data de nascimento.
Consulta:
mysql> SELECT *FROM employees ORDER BY DOB;
Como queríamos ordenar os registros em ordem crescente de data de nascimento dos funcionários, aplicamos a cláusula ORDER BY na coluna 'DOB'.
Você obterá a seguinte saída:
EU IA | Nome | Salário | Data de ingresso | Data de nascimento |
---|---|---|---|---|
4 | Anant Desai | 59.000 | 27/08/2018 | 29/06/1978 15:45:13 |
3 | Saurabh Jha | 61.000 | 01-05-2015 | 20/02/1983 12:18:45 |
2 | Kunal Mohit | 34.000 | 2021-01-01 | 15/05/1990 19:10:00 |
1 | RohitMais | 50.000 | 08/02/2020 | 28/01/1991 18:06:08 |
6 | Bhavesh Jain | 37.000 | 03/07/2021 | 02/08/1998 13:00:01 |
5 | Krishna Sharma | 48.000 | 23/10/2010 | 21/03/1999 02:14:56 |
Os resultados obtidos na consulta acima mostram que os registros são exibidos em ordem crescente de DOB.
Exemplo 2:
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem decrescente de datas de ingresso.
Consulta:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Como queríamos ordenar os registros em ordem decrescente da data de adesão dos funcionários, aplicamos a cláusula ORDER BY com a palavra-chave DESC na coluna 'Data_de_ingresso'.
pesquisa binária
Você obterá a seguinte saída:
EU IA | Nome | Salário | Data de ingresso | Data de nascimento |
---|---|---|---|---|
6 | Bhavesh Jain | 37.000 | 03/07/2021 | 02/08/1998 13:00:01 |
2 | Kunal Mohit | 34.000 | 2021-01-01 | 15/05/1990 19:10:00 |
1 | RohitMais | 50.000 | 08/02/2020 | 28/01/1991 18:06:08 |
4 | Anant Desai | 59.000 | 27/08/2018 | 29/06/1978 15:45:13 |
3 | Saurabh Jha | 61.000 | 01-05-2015 | 20/02/1983 12:18:45 |
5 | Krishna Sharma | 48.000 | 23/10/2010 | 21/03/1999 02:14:56 |
Os resultados obtidos na consulta acima mostram que os registros são exibidos em ordem decrescente das datas de adesão.
Exemplo 3:
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente de ano de nascimento.
quantos zero por um milhão
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%Y') AS Year_of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%Y');
Como queríamos ordenar os registros em ordem crescente do ano de nascimento dos funcionários, aplicamos a cláusula ORDER BY. A função DATE_FORMAT() é aplicada na coluna DOB com o parâmetro '%Y' para extrair apenas o ano de 'DOB'.
Você obterá a seguinte saída:
EU IA | Nome | Salário | Data de ingresso | Ano de nascimento |
---|---|---|---|---|
4 | Anant Desai | 59.000 | 27/08/2018 | 1978 |
3 | Saurabh Jha | 61.000 | 01-05-2015 | 1983 |
2 | Kunal Mohit | 34.000 | 2021-01-01 | 1990 |
1 | RohitMais | 50.000 | 08/02/2020 | 1991 |
6 | Bhavesh Jain | 37.000 | 03/07/2021 | 1998 |
5 | Krishna Sharma | 48.000 | 23/10/2010 | 1999 |
Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente do ano de nascimento do funcionário.
Exemplo 4:
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem decrescente de hora de nascimento.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DATE_FORMAT (DOB, '%H') AS Hour_Of_Birth FROM employees ORDER BY DATE_FORMAT (DOB, '%H') DESC;
Como queríamos ordenar os registros em ordem decrescente da hora de nascimento dos funcionários, aplicamos a cláusula ORDER BY com a palavra-chave DESC. A função DATE_FORMAT() é aplicada na coluna DOB com o parâmetro '%H' para extrair apenas a hora do nascimento da coluna'DOB'.
Você obterá a seguinte saída:
EU IA | Nome | Salário | Data de ingresso | Hora_de_nascimento |
---|---|---|---|---|
2 | Kunal Mohit | 34.000 | 2021-01-01 | 19 |
1 | RohitMais | 50.000 | 08/02/2020 | 18 |
4 | Anant Desai | 59.000 | 27/08/2018 | quinze |
6 | Bhavesh Jain | 37.000 | 03/07/2021 | 13 |
3 | Saurabh Jha | 61.000 | 01-05-2015 | 12 |
5 | Krishna Sharma | 48.000 | 23/10/2010 | 02 |
Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem decrescente da hora de nascimento do funcionário.
Exemplo 5:
diferença entre $ e $$
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente de ano de ingresso.
Consulta:
mysql> SELECT ID, Name, Salary, DOB, DATE_FORMAT (Joining_Date, '%Y') AS Year_Of_Joining FROM employees ORDER BY DATE_FORMAT (Joining_Date, '%Y');
Como queríamos ordenar os registros em ordem crescente do ano de adesão dos funcionários, aplicamos a cláusula ORDER BY. A função DATE_FORMAT() é aplicada na coluna Joining_Date com o parâmetro '%Y' para extrair apenas o ano de 'Joining_Date'.
Você obterá a seguinte saída:
EU IA | Nome | Salário | Ano_de_entrada | Data de nascimento |
---|---|---|---|---|
5 | Krishna Sharma | 48.000 | 2010 | 21/03/1999 02:14:56 |
3 | Saurabh Jha | 61.000 | 2015 | 20/02/1983 12:18:45 |
4 | Anant Desai | 59.000 | 2018 | 29/06/1978 15:45:13 |
1 | RohitMais | 50.000 | 2020 | 28/01/1991 18:06:08 |
2 | Kunal Mohit | 34.000 | 2021 | 15/05/1990 19:10:00 |
6 | Bhavesh Jain | 37.000 | 2021 | 02/08/1998 13:00:01 |
Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente de ano de ingresso dos funcionários.
Exemplo 6:
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem decrescente do dia de adesão dos funcionários.
Consulta:
mysql> SELECT ID, Name, Salary, DAY (Joining_Date) AS Day_Of_Joining, DOB FROM employees ORDER BY DAY (Joining_Date) DESC;
Como queríamos ordenar os registros em ordem decrescente do dia de adesão dos funcionários, aplicamos a cláusula ORDER BY com a palavra-chave DESC. A função DAY() é aplicada na coluna 'Joining_Date' para extrair apenas o dia da adesão de Joining_Date.
Você obterá a seguinte saída:
EU IA | Nome | Salário | Dia_de_entrada | Data de nascimento |
---|---|---|---|---|
4 | Anant Desai | 59.000 | 27 | 29/06/1978 15:45:13 |
5 | Krishna Sharma | 48.000 | 23 | 21/03/1999 02:14:56 |
1 | RohitMais | 50.000 | 8 | 28/01/1991 18:06:08 |
6 | Bhavesh Jain | 37.000 | 3 | 02/08/1998 13:00:01 |
2 | Kunal Mohit | 34.000 | 1 | 15/05/1990 19:10:00 |
3 | Saurabh Jha | 61.000 | 1 | 20/02/1983 12:18:45 |
Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem decrescente do dia de entrada dos funcionários.
Exemplo 7:
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente de data de nascimento dos funcionários.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Como queríamos ordenar os registros em ordem crescente do dia de nascimento dos funcionários, aplicamos a cláusula ORDER BY. A função DAY() é aplicada na coluna ‘DOB’ para extrair apenas o dia de nascimento do DOB.
Você obterá a seguinte saída:
EU IA | Nome | Salário | Ano_de_entrada | Dia de nascimento |
---|---|---|---|---|
6 | Bhavesh Jain | 37.000 | 03/07/2021 | 2 |
2 | Kunal Mohit | 34.000 | 2021-01-01 | quinze |
3 | Saurabh Jha | 61.000 | 01-05-2015 | vinte |
5 | Krishna Sharma | 48.000 | 23/10/2010 | vinte e um |
1 | RohitMais | 50.000 | 08/02/2020 | 28 |
4 | Anant Desai | 59.000 | 27/08/2018 | 29 |
Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente do dia de nascimento do funcionário.
Exemplo 8:
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente do mês de nascimento do funcionário.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
EU IA | Nome | Salário | Data de ingresso | Data de nascimento |
---|---|---|---|---|
1 | RohitMais | 50.000 | 08/02/2020 | 28/01/1991 18:06:08 |
3 | Saurabh Jha | 61.000 | 01-05-2015 | 20/02/1983 12:18:45 |
5 | Krishna Sharma | 48.000 | 23/10/2010 | 21/03/1999 02:14:56 |
2 | Kunal Mohit | 34.000 | 2021-01-01 | 15/05/1990 19:10:00 |
4 | Anant Desai | 59.000 | 27/08/2018 | 29/06/1978 15:45:13 |
6 | Bhavesh Jain | 37.000 | 03/07/2021 | 02/08/1998 13:00:01 |
Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente do mês de nascimento do funcionário.
Exemplo 9:
Escreva uma consulta para exibir todos os detalhes dos funcionários organizados em ordem crescente do mês de ingresso do funcionário.
chacal vs lobo
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Como queríamos ordenar os registros em ordem crescente do mês de adesão dos funcionários, aplicamos a cláusula ORDER BY. A função MONTH() é aplicada na coluna 'Joining_Date' para extrair apenas o mês de adesão de Joining_Date.
Você obterá a seguinte saída:
EU IA | Nome | Salário | Data de ingresso | Data de nascimento |
---|---|---|---|---|
2 | Kunal Mohit | 34.000 | 2021-01-01 | 15/05/1990 19:10:00 |
1 | RohitMais | 50.000 | 08/02/2020 | 28/01/1991 18:06:08 |
3 | Saurabh Jha | 61.000 | 01-05-2015 | 20/02/1983 12:18:45 |
6 | Bhavesh Jain | 37.000 | 03/07/2021 | 02/08/1998 13:00:01 |
4 | Anant Desai | 59.000 | 27/08/2018 | 29/06/1978 15:45:13 |
5 | Krishna Sharma | 48.000 | 23/10/2010 | 21/03/1999 02:14:56 |
Os resultados obtidos na consulta acima mostram que os registros são apresentados em ordem crescente do mês de adesão do funcionário.