- ORDER BY es una cláusula en SQL que se utiliza con la consulta SELECT para recuperar los registros en orden ascendente o descendente de una tabla.
- Así como ordenamos los valores enteros y de cadena almacenados en la columna de las tablas, de manera similar, podemos ordenar las fechas almacenadas en la columna de la tabla SQL.
- Todos los registros se ordenarán, de forma predeterminada, en orden ascendente. Para ordenar los registros en orden descendente, se utiliza la palabra clave DESC.
Veamos algunos ejemplos prácticos para entender más claramente este concepto. Usaremos la base de datos MySQL para escribir todas las consultas.
Considere que hemos creado una tabla denominada empleados en la base de datos MySQL con los siguientes datos:
IDENTIFICACIÓN | Nombre | Salario | Dia de ingreso | fecha de nacimiento |
---|---|---|---|---|
1 | RohitMás | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
6 | bhavesh jainista | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Ejemplo 1:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden ascendente de su fecha de nacimiento.
Consulta:
mysql> SELECT *FROM employees ORDER BY DOB;
Como queríamos ordenar los registros en orden ascendente según la fecha de nacimiento de los empleados, hemos aplicado la cláusula ORDER BY en la columna 'DOB'.
Obtendrá el siguiente resultado:
ventajas de la electricidad
IDENTIFICACIÓN | Nombre | Salario | Dia de ingreso | fecha de nacimiento |
---|---|---|---|---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | RohitMás | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
6 | bhavesh jainista | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden ascendente de la fecha de nacimiento.
Ejemplo 2:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden descendente de sus fechas de incorporación.
Consulta:
mysql> SELECT *FROM employees ORDER BY Joining_Date DESC;
Como queríamos ordenar los registros en orden descendente de la fecha de incorporación de los empleados, hemos aplicado la cláusula ORDER BY con la palabra clave DESC en la columna 'Fecha_de incorporación'.
Obtendrá el siguiente resultado:
IDENTIFICACIÓN | Nombre | Salario | Dia de ingreso | fecha de nacimiento |
---|---|---|---|---|
6 | bhavesh jainista | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | RohitMás | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden descendente de las fechas de incorporación.
Ejemplo 3:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden ascendente según su año de nacimiento.
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 los registros en orden ascendente según el año de nacimiento de los empleados, hemos aplicado la cláusula ORDER BY. La función DATE_FORMAT () se aplica en la columna DOB con el parámetro '%Y' para extraer solo el año de 'DOB'.
Obtendrá el siguiente resultado:
IDENTIFICACIÓN | Nombre | Salario | Dia de ingreso | Año de nacimiento |
---|---|---|---|---|
4 | Anant Desai | 59000 | 2018-08-27 | 1978 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990 |
1 | RohitMás | 50000 | 2020-02-08 | 1991 |
6 | bhavesh jainista | 37000 | 2021-07-03 | 1998 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden ascendente del año de nacimiento del empleado.
recorrido en orden del árbol binario
Ejemplo 4:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden descendente de su hora de nacimiento.
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 los registros en orden descendente de la hora de nacimiento de los empleados, hemos aplicado la cláusula ORDER BY con la palabra clave DESC. La función DATE_FORMAT () se aplica en la columna DOB con el parámetro '%H' para extraer solo la hora de nacimiento de la columna'DOB'.
Obtendrá el siguiente resultado:
IDENTIFICACIÓN | Nombre | Salario | Dia de ingreso | Hora_de_nacimiento |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 19 |
1 | RohitMás | 50000 | 2020-02-08 | 18 |
4 | Anant Desai | 59000 | 2018-08-27 | 15 |
6 | bhavesh jainista | 37000 | 2021-07-03 | 13 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 12 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 02 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden descendente de la hora de nacimiento del empleado.
Ejemplo 5:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden ascendente según su año de incorporación.
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 los registros en orden ascendente del año de incorporación de los empleados, hemos aplicado la cláusula ORDER BY. La función DATE_FORMAT () se aplica en la columna Joining_Date con el parámetro '%Y' para extraer solo el año de 'Joining_Date'.
Obtendrá el siguiente resultado:
tamaño del texto de látex
IDENTIFICACIÓN | Nombre | Salario | Año_de_unión | fecha de nacimiento |
---|---|---|---|---|
5 | Krishna Sharma | 48000 | 2010 | 1999-03-21 02:14:56 |
3 | Saurabh Jha | 61000 | 2015 | 1983-02-20 12:18:45 |
4 | Anant Desai | 59000 | 2018 | 1978-06-29 15:45:13 |
1 | RohitMás | 50000 | 2020 | 1991-01-28 18:06:08 |
2 | Kunal Mohit | 34000 | 2021 | 1990-05-15 19:10:00 |
6 | bhavesh jainista | 37000 | 2021 | 1998-08-02 13:00:01 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden ascendente del año de incorporación de los empleados.
Ejemplo 6:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden descendente del día de incorporación de los empleados.
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 los registros en orden descendente del día de incorporación de los empleados, hemos aplicado la cláusula ORDER BY con la palabra clave DESC. La función DÍA () se aplica en la columna 'Joining_Date' para extraer solo el día de unión de Joining_Date.
Obtendrá el siguiente resultado:
IDENTIFICACIÓN | Nombre | Salario | Día_de_unión | fecha de nacimiento |
---|---|---|---|---|
4 | Anant Desai | 59000 | 27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 23 | 1999-03-21 02:14:56 |
1 | RohitMás | 50000 | 8 | 1991-01-28 18:06:08 |
6 | bhavesh jainista | 37000 | 3 | 1998-08-02 13:00:01 |
2 | Kunal Mohit | 34000 | 1 | 1990-05-15 19:10:00 |
3 | Saurabh Jha | 61000 | 1 | 1983-02-20 12:18:45 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden descendente del día de incorporación de los empleados.
Ejemplo 7:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden ascendente según el día de nacimiento de los empleados.
Consulta:
comunicación analógica
mysql> SELECT ID, Name, Salary, Joining_Date, DAY (DOB) AS Day_Of_Birth FROM employees ORDER BY DAY (DOB);
Como queríamos ordenar los registros en orden ascendente según el día de nacimiento de los empleados, hemos aplicado la cláusula ORDER BY. La función DÍA () se aplica en la columna 'DOB' para extraer solo el día de nacimiento de la fecha de nacimiento.
Obtendrá el siguiente resultado:
IDENTIFICACIÓN | Nombre | Salario | Año_de_unión | Día de nacimiento |
---|---|---|---|---|
6 | bhavesh jainista | 37000 | 2021-07-03 | 2 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 15 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 20 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 21 |
1 | RohitMás | 50000 | 2020-02-08 | 28 |
4 | Anant Desai | 59000 | 2018-08-27 | 29 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden ascendente del día de nacimiento del empleado.
Ejemplo 8:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden ascendente según el mes de nacimiento del empleado.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (DOB);
IDENTIFICACIÓN | Nombre | Salario | Dia de ingreso | fecha de nacimiento |
---|---|---|---|---|
1 | RohitMás | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
6 | bhavesh jainista | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden ascendente del mes de nacimiento del empleado.
Ejemplo 9:
Escriba una consulta para mostrar todos los detalles de los empleados ordenados en orden ascendente del mes de incorporación del empleado.
Consulta:
mysql> SELECT ID, Name, Salary, Joining_Date, DOB FROM employees ORDER BY MONTH (Joining_Date);
Como queríamos ordenar los registros en orden ascendente del mes de incorporación de los empleados, hemos aplicado la cláusula ORDER BY. La función MES () se aplica en la columna 'Joining_Date' para extraer solo el mes de incorporación de Joining_Date.
Obtendrá el siguiente resultado:
IDENTIFICACIÓN | Nombre | Salario | Dia de ingreso | fecha de nacimiento |
---|---|---|---|---|
2 | Kunal Mohit | 34000 | 2021-01-01 | 1990-05-15 19:10:00 |
1 | RohitMás | 50000 | 2020-02-08 | 1991-01-28 18:06:08 |
3 | Saurabh Jha | 61000 | 2015-05-01 | 1983-02-20 12:18:45 |
6 | bhavesh jainista | 37000 | 2021-07-03 | 1998-08-02 13:00:01 |
4 | Anant Desai | 59000 | 2018-08-27 | 1978-06-29 15:45:13 |
5 | Krishna Sharma | 48000 | 2010-10-23 | 1999-03-21 02:14:56 |
Los resultados obtenidos de la consulta anterior muestran que los registros se muestran según el orden ascendente del mes de incorporación del empleado.