¿Cómo ordenar de forma personalizada en la cláusula SQL ORDER BY?

De forma predeterminada , SQL ORDER BY sortea la columna en orden ascendente, pero cuando se necesita el orden descendente, se puede usar ORDER BY DESC . En caso de que necesitemos una ordenación personalizada, debemos usar una instrucción CASE en la que debemos mencionar las prioridades para ordenar la columna.

En este artículo, veamos cómo podemos ordenar de forma personalizada en una tabla usando order usando MSSQL como servidor.

Sintaxis:

SELECT * FROM table_name
ORDER BY CASE 
     WHEN column_field = "value1" THEN priority1
     WHEN column_field = "value2" THEN priority2
     WHEN column_field = "value3" THEN priority3
     .
     ELSE priorityn 
     END ASC

Paso 1: Estamos creando una base de datos. Para esto, use el siguiente comando para crear una base de datos llamada GeeksforGeeks.

Consulta:

CREATE DATABASE GeeksforGeeks;

Paso 2: para usar la base de datos GeeksforGeeks, use el siguiente comando.

Consulta:

USE GeeksforGeeks

Paso 3: Ahora estamos creando una tabla. Cree una tabla student_marks con 4 columnas usando la siguiente consulta SQL.

Consulta:

CREATE TABLE student_marks(
stu_id VARCHAR(20),
stu_name VARCHAR(20),
stu_branch VARCHAR(20),
total_marks INT
)

Paso 4: Ver la descripción de la tabla.

Consulta:

EXEC sp_columns student_marks

Paso 5: la consulta para insertar filas en la tabla. Inserte filas en la tabla student_marks usando la siguiente consulta SQL.

Consulta:

INSERT INTO student_marks
VALUES( '1001','PRADEEP','E.C.E', 550),
( '1002','KIRAN','E.C.E', 540),
( '5001','PRANAV','I.C.E', 450),
( '2001','PADMA','C.S.E', 570),
( '2002','SRUTHI','C.S.E', 480),
( '2003','HARSITHA','C.S.E', 534),
( '3001','SAI','I.T', 560),
( '3002','HARSH','I.T', 510),
( '4001','HARSHINI','E.E.E', 500) 

Paso 6: Ver los datos insertados

Consulta:

SELECT * FROM student_marks

  • La consulta a la ordenación personalizada basada en el orden de las sucursales de CSE, IT, ECE, ICE, EEE también muestra la diferencia entre la ordenación predeterminada usando ORDER BY.

Clasificación predeterminada por ORDEN POR:

SELECT * FROM student_marks
ORDER BY stu_branch 

Producción:

Clasificación personalizada por ORDEN POR:

SELECT * FROM student_marks
ORDER BY CASE
         WHEN stu_branch = 'C.S.E' then 1
         WHEN stu_branch = 'I.T' then 2 
         WHEN stu_branch = 'E.C.E' then 3
         WHEN stu_branch = 'I.C.E' then 4
         WHEN stu_branch = 'E.E.E' then 5
         END ASC  

Producción:

Publicación traducida automáticamente

Artículo escrito por lokeshpotta20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *