sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo usar la declaración CASE en MySQL?

Dada la enorme cantidad de datos que se generan todos los días, es importante recuperarlos en función de algunas condiciones. En este artículo sobre la declaración CASE en MySQL, discutiré cómo usar esta declaración para recuperar datos en una sola condición o en múltiples condiciones.

Los siguientes temas se tratarán en este artículo:

  • Introducción a SQL
  • ¿Cuál es el propósito de SQL?
  • CASO en MySQL
  • Sintaxis de CASE en MySQL
  • Ejemplo de CASE en MySQL

¿Qué es SQL?

SQL es un lenguaje específico de dominio que se usa ampliamente en la programación. Está diseñado para gestionar datos contenidos en un sistema de gestión de bases de datos relacionales (RDBMS) o para el procesamiento de flujos en un sistema de gestión de flujos de datos relacionales. En general, SQL es un lenguaje estándar que ayuda a almacenar, manipular y recuperar datos en bases de datos.

¿Cuál es el propósito de SQL?

SQL se usa básicamente para comunicarse con una base de datos. Según ANSI (American National Standards Institute), se considera como el lenguaje estándar para los sistemas de gestión de bases de datos relacionales (RDBMS). Usamos declaraciones SQL para realizar tareas como actualizar, insertar, eliminar o recuperar datos de una base de datos.

¿Qué es la instrucción CASE en MySQL?

La declaración CASE en MySQL es una forma de manejar la lógica if/else. Es una especie de declaración de control que forma la célula de los lenguajes de programación, ya que controlan la ejecución de otros conjuntos de declaraciones.

La declaración CASE pasa por varias condiciones y devuelve valores a medida que se cumple la primera condición (como una declaración IF-THEN-ELSE en lenguajes de bajo nivel). Una vez que una condición es verdadera, dejará de atravesar y devolverá el resultado. Si ninguna de las condiciones es verdadera, devuelve el valor de la cláusula ELSE.

Si no hay una cláusula ELSE y ninguna de las condiciones es verdadera, simplemente devuelve NULL.

Sintaxis de la instrucción CASE en MySQL

Sintaxis básica:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionx THEN resultx
    ELSE result
END;

Puede haber dos formas de lograr sentencias CASE-Switch:

  • Toma una variable llamada case_value y la compara con alguna declaración_list.
CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list] ...
    [ELSE statement_list]
END;
  • Considere una condición_de_búsqueda en lugar de igualdad de variables y ejecute la lista_de_instrucciones en consecuencia.
CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END;

Ejemplo de sentencia CASE en MySQL

Consideremos una tabla:ESTUDIANTE

Mesa del estudiante

Identificación del estudiante Nombre Departamento Género
001 Akash CS M
002 Bikram Mecha M
003 Chandan CS M
004 Deepak CS M
005 Elicia CE F
006 Fernandes Mecha F

Ejemplo: Considere un escenario en el que tiene que modificar los nombres de los departamentos a sus formas completas. Si el nombre del departamento es CS, debe convertirse a Informática; Asimismo, Mech debe convertirse a Mechanical.and EC a Electronic and Communication.

Consulta de muestra

CASE department_name
WHEN 'CS'
  THEN UPDATE Student SET
  department='Computer Science';
 WHEN 'EC'
  THEN UPDATE Student SET
  department='Electronics and Communication';
 ELSE UPDATE Student SET
 department=’Mechanical';
END;

Salida:

Los nombres de los departamentos correspondientes se renombran de la siguiente manera:

Identificación del estudiante Nombre Departamento Género
001 Akasha Informática M
002 Bikram Mecánica M
003 Chandan Informática M
004 Deepak Informática M
005 Elicia Electrónica y Comunicación F
006 Fernandes Mecánica F

Ejemplo: Considere un escenario en el que tiene que seleccionar todos los campos correspondientes a la tabla Estudiante. Dado que los valores escritos en el campo Género son valores de un solo carácter (M/F), escribamos una consulta para cambiar M a Hombre y F a Mujer.

Consulta de muestra

SELECT Student ID, Name, Department,
CASE Gender
 WHEN'M' THEN 'Male'
 WHEN'F' THEN 'Female'
END
FROM Student;

Salida:

Identificación del estudiante Nombre Departamento Género
001 Akasha Informática Hombre
002 Bikram Mecánica Hombre
003 Chandan Informática Hombre
004 Deepak Informática Hombre
005 Elicia Electrónica y Comunicación Mujer
006 Fernandes Mecánica Mujer

Conmutador CASE en SQL:clasificación personalizada

Consulta de muestra

CREATE PROCEDURE GetStudent(@ColToSort varchar(150)) AS
SELECT StudentID, Name, Gender, Department
FROM Student
ORDER BY
  CASE WHEN @ColToSort='Department' THEN Department
       WHEN @ColToSort='Name' THEN Name
       WHEN @ColToSort='Gender' THEN Gender
       ElSE StudentID
  END;

Salida:

La salida se ordena de acuerdo con el campo proporcionado.

El procedimiento anterior (función) toma una variable de tipo de datos varchar como argumento y, sobre esa base, ordena las tuplas en la tabla Student. Además, también podemos usar sentencias CASE para comparar condiciones.

Ejemplo: Considere una tabla llamada CONTACTOS que contiene ID de contacto y un ID de sitio web. De acuerdo con estos detalles, un usuario puede navegar a través de estos enlaces:'TechOnTheNet.com' o 'CheckYourMath.com'.

Consulta de muestra

SELECT
CASE
&nbsp;&nbsp;WHEN contact_id < 1000 THEN 'TechOnTheNet.com'
&nbsp;&nbsp;WHEN website_id = 2 THEN 'CheckYourMath.com'
END
FROM contacts;

Debe estar claro ahora que al escribir sentencias Case en MySQL, uno de los factores más importantes es 'ordenarlas de la manera correcta'. Solo recuerde que las condiciones se evalúan en el orden que usted indique. Una vez que cualquier condición se vuelve verdadera, la instrucción CASE devolverá el resultado y no evaluará más las condiciones. Así que tenga cuidado al seleccionar el orden en el que enumera sus condiciones.

Si desea obtener más información sobre MySQL y conocer esta base de datos relacional de código abierto, consulte nuestra Capacitación para la certificación de DBA de MySQL, que incluye capacitación en vivo dirigida por un instructor y Experiencia proyecto de vida. Esta capacitación lo ayudará a comprender MySQL en profundidad y lo ayudará a dominar el tema.

¿Tiene alguna pregunta para nosotros? Menciónelo en la sección de comentarios de esta "Declaración CASE en MySQL" y nos pondremos en contacto con usted.