If ELSE en MySQL
En este tutorial, nuestro objetivo es explorar cómo usar la declaración IF ELSE
en MySQL.
Una de las funciones clave de un analista de datos es recopilar información de los datos y generar resultados significativos. Se puede hacer con la ayuda de varias técnicas de filtrado y visualización de datos.
Uno de ellos es la sentencia IF ELSE
. Una declaración IF ELSE
, como su nombre indica, nos ayuda a filtrar datos de una tabla en particular en la base de datos MySQL.
Estas condiciones de filtrado se establecen en el bloque IF
de la sentencia. Si una condición particular no se cumple con los datos ingresados en nuestra tabla, se ejecuta el bloque ELSE
.
Por ejemplo, en una tabla de empleados con detalles de empleados, podemos usar la cláusula IF ELSE
en MySQL si deseamos filtrar a los empleados en función de sus salarios. Vamos a entender cómo funciona este método.
Antes de comenzar, creemos un conjunto de datos ficticio mediante la creación de una tabla student_details
con algunas filas.
-- 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");
Para ver las entradas en los datos, usamos el siguiente código.
SELECT * FROM student_details;
Producción :
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
Declaración IF ELSE
en MySQL
La sintaxis básica de la técnica IF ELSE
es la siguiente.
select column_name,
(
CASE
WHEN <condition> THEN <operation>
ELSE 1
END)
from table_x;
Como se ve en la consulta antes mencionada, usamos la instrucción case
junto con la cláusula ELSE
. Así es como se lleva a cabo la sentencia IF ELSE
en MySQL.
Filtremos los datos de nuestra tabla student_details
asegurándonos de que solo se impriman los apellidos de los alumnos en lugar del nombre si stu_id
es mayor que 3
. De lo contrario, imprimimos el primer nombre si el stu_id
es menor o igual a 3
.
Podemos lograr esto usando la siguiente consulta.
select stu_id,
(
CASE
WHEN stu_id <= 3 THEN stu_firstName
ELSE stu_lastName
END) AS filtered_data
from student_details;
Producción :
stu_id filtered_data
1 Preet
2 Rich
3 Veron
4 Jos
5 Shah
6 Parker
7 Miller
Nota: En el código anterior, usamos el alias filtered_data
con la palabra clave AS
en MySQL para aumentar la legibilidad.
Una alternativa a la técnica CASE ELSE
es un procedimiento almacenado. Se puede crear un procedimiento almacenado con el bloque IF ELSE
, pero este método es muy ineficiente y case
funciona mejor con casos de uso similares al discutido anteriormente.
Por lo tanto, con la ayuda de la declaración case
, podemos implementar de manera eficiente la funcionalidad esperada de una declaración IF ELSE
de cualquier otro lenguaje de programación para filtrar datos en MySQL.