La declaración CASE en MySQL
En este tutorial, nuestro objetivo es aprender a usar la instrucción CASE
en MySQL.
Cuando se cumple la primera condición, la instrucción CASE
procede a través de los criterios y devuelve un valor (como una instrucción IF-THEN-ELSE
). Cuando una condición es verdadera, el programa dejará de leer y devolverá el resultado.
Devolverá el valor en la cláusula ELSE
si ninguno de los criterios es verdadero. En caso de que no haya una parte ELSE
en el código, el programa devuelve NULL
.
La sintaxis de la declaración del caso se puede dar como:
case when condition then result_1 else result_2 end;
Intentemos aprender más sobre esta declaración con un ejemplo.
Sin embargo, antes de comenzar, creamos un conjunto de datos ficticio para trabajar. Aquí creamos una tabla, student_details
, junto con algunas filas en ella.
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
La consulta anterior crea una tabla junto con filas con el nombre y apellido del estudiante. Para ver las entradas en los datos, usamos el siguiente código:
SELECT * FROM student_details;
El código mencionado anteriormente daría el siguiente resultado:
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
Ahora, apuntemos a imprimir Yes
junto con el apellido del estudiante cuando el nombre del estudiante es Preet
; de lo contrario, imprimimos No
.
La declaración CASE
en MySQL
Como se vio en la sintaxis anterior, la declaración CASE
en MySQL requiere una condición. Esto funciona de manera similar a una declaración IF..ELSE..
.
Podemos hacer uso del siguiente ejemplo de código para obtener el resultado deseado en MySQL:
SELECT stu_lastName,
CASE stu_firstName
WHEN 'Preet' THEN 'Yes'
ELSE 'No'
END
AS RESULT
FROM student_details;
El código antes mencionado obtiene el apellido de cada estudiante junto con una nueva columna llamada result
. Esta columna de resultado tiene Yes
si el nombre del alumno es Preet
.
La salida del código anterior se puede visualizar de la siguiente manera.
stu_lastName RESULT
Sanghavi Yes
John No
Brow No
Jos No
Shah No
Parker No
Miller No
Del mismo modo, podemos utilizar la declaración CASE
para aprovechar los datos y cumplir con nuestros requisitos. Una alternativa a la sentencia CASE
es la sentencia IF
en MySQL.
Por lo tanto, con la ayuda de este tutorial, ahora podemos implementar con éxito la instrucción CASE
en MySQL.