La instrucción ORDER BY en SQL se utiliza para ordenar los datos obtenidos de forma ascendente o descendente según una o más columnas.
- Por defecto, ORDER BY ordena los datos en orden ascendente.
- Podemos usar la palabra clave DESC para ordenar los datos en orden descendente y la palabra clave ASC para ordenarlos en orden ascendente.
Ordenar según una columna:
Para ordenar en orden ascendente o descendente podemos utilizar las palabras clave ASC o DESC respectivamente.
Sintaxis:
SELECT * FROM table_name ORDER BY column_name ASC|DESC //Where table_name: name of the table. column_name: name of the column according to which the data is needed to be arranged. ASC: to sort the data in ascending order. DESC: to sort the data in descending order. | : use either ASC or DESC to sort in ascending or descending order//
Ordenar según varias columnas:
Para ordenar en orden ascendente o descendente podemos utilizar las palabras clave ASC o DESC respectivamente. Para ordenar según varias columnas, separe los nombres de las columnas con el operador (,).
Sintaxis:
SELECT * FROM table_name ORDER BY column1 ASC|DESC , column2 ASC|DESC
Ahora considere la tabla de base de datos anterior y encuentre los resultados de diferentes consultas.
Ordenar según una sola columna :
En este ejemplo, buscaremos todos los datos de la tabla Student y ordenaremos el resultado en orden descendente según la columna ROLL_NO.
Consulta:
SELECT * FROM Student ORDER BY ROLL_NO DESC;
Producción:
ROLLO_NO | NOMBRE | DIRECCIÓN | TELÉFONO | Años |
---|---|---|---|---|
8 | NIRAJ | ALIPUR | XXXXXXXXXX | 19 |
7 | ROHIT | BALURGHAT | XXXXXXXXXX | 18 |
6 | DHANRAJ | BARABAJAR | XXXXXXXXXX | 20 |
5 | SAPTARHI | CALCUTA | XXXXXXXXXX | 19 |
4 | PROFUNDO | RAMNAGAR | XXXXXXXXXX | 18 |
3 | RIYANKA | SILIGURI | XXXXXXXXXX | 20 |
2 | PRATIK | BIHAR | XXXXXXXXXX | 19 |
1 | DURO | DELHI | XXXXXXXXXX | 18 |
En el ejemplo anterior, si queremos ordenar en orden ascendente, debemos usar ASC en lugar de DESC.
Ordenar según varias columnas :
En este ejemplo, buscaremos todos los datos de la tabla Student y luego ordenaremos el resultado en orden ascendente primero de acuerdo con la columna Age. y luego en orden descendente según la columna ROLL_NO.
Consulta:
SELECT * FROM Student ORDER BY Age ASC , ROLL_NO DESC;
Producción:
ROLLO_NO | NOMBRE | DIRECCIÓN | TELÉFONO | Años |
---|---|---|---|---|
7 | ROHIT | BALURGHAT | XXXXXXXXXX | 18 |
4 | PROFUNDO | RAMNAGAR | XXXXXXXXXX | 18 |
1 | DURO | DELHI | XXXXXXXXXX | 18 |
8 | NIRAJ | ALIPUR | XXXXXXXXXX | 19 |
5 | SAPTARHI | CALCUTA | XXXXXXXXXX | 19 |
2 | PRATIK | BIHAR | XXXXXXXXXX | 19 |
6 | DHANRAJ | BARABAJAR | XXXXXXXXXX | 20 |
3 | RIYANKA | SILIGURI | XXXXXXXXXX | 20 |
En el resultado anterior, podemos ver que primero el resultado se ordena en orden ascendente según la edad. Hay varias filas de tener la misma edad. Ahora, al ordenar más este conjunto de resultados de acuerdo con ROLL_NO, se ordenarán las filas con la misma Edad de acuerdo con ROLL_NO en orden descendente.
Nota:
ASC es el valor predeterminado para la cláusula ORDER BY. Por lo tanto, si no especificamos nada después del nombre de la columna en la cláusula ORDER BY, la salida se ordenará en orden ascendente de forma predeterminada.
Tome otro ejemplo de la siguiente consulta que dará un resultado similar al anterior:
Consulta:
SELECT * FROM Student ORDER BY Age , ROLL_NO DESC;
Producción:
ROLLO_NO | NOMBRE | DIRECCIÓN | TELÉFONO | Años |
---|---|---|---|---|
7 | ROHIT | BALURGHAT | XXXXXXXXXX | 18 |
4 | PROFUNDO | RAMNAGAR | XXXXXXXXXX | 18 |
1 | DURO | DELHI | XXXXXXXXXX | 18 |
8 | NIRAJ | ALIPUR | XXXXXXXXXX | 19 |
5 | SAPTARHI | CALCUTA | XXXXXXXXXX | 19 |
2 | PRATIK | BIHAR | XXXXXXXXXX | 19 |
6 | DHANRAJ | BARABAJAR | XXXXXXXXXX | 20 |
3 | RIYANKA | SILIGURI | XXXXXXXXXX | 20 |
esas columnas
Order by Column_Number asc/desc
CREATE TABLE studentinfo ( Roll_no INT, NAME VARCHAR(25), Address VARCHAR(20), CONTACTNO BIGINT NOT NULL, Age INT ); INSERT INTO studentinfo VALUES (7,'ROHIT','GAZIABAD',9193458625,18), (4,'DEEP','RAMNAGAR',9193458546,18), (1,'HARSH','DELHI',9193342625,18), (8,'NIRAJ','ALIPUR',9193678625,19), (5,'SAPTARHI','KOLKATA',9193789625,19), (2,'PRATIK','BIHAR',9193457825,19), (6,'DHANRAJ','BARABAJAR',9193358625,20), (3,'RIYANKA','SILIGURI',9193218625,20); SELECT Name, Address FROM studentinfo ORDER BY 1
Producción:
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA