La expresión CASE de MySQL es parte de la función de flujo de control que nos permite escribir un si-si no o si-entonces-si no lógica a una consulta. Esta expresión se puede utilizar en cualquier lugar que utilice un programa o consulta válido, como la cláusula SELECT, WHERE, ORDER BY, etc.
La expresión CASE valida varias condiciones y devuelve el resultado cuando se cumple la primera condición. verdadero . Una vez que se cumple la condición, deja de atravesar y da la salida. Si no encuentra ninguna condición verdadera, ejecuta el de lo contrario bloquear . Cuando no se encuentra el bloque else, devuelve un NULO valor. El objetivo principal de mysql La declaración CASE es para tratar múltiples declaraciones IF en la cláusula SELECT.
Podemos utilizar la declaración CASE de dos maneras, que son las siguientes:
1. Declaración CASO simple:
El primer método consiste en tomar un valor y compararlo con la declaración dada, como se muestra a continuación.
estática en c
Sintaxis
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Devuelve el resultado cuando la primera comparar_valor la comparación se vuelve cierta. De lo contrario, devolverá la cláusula else.
Ejemplo
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Producción
Después de la ejecución exitosa del comando anterior, veremos el siguiente resultado.
2. Declaración CASE buscada:
El segundo método consiste en considerar una condición_búsqueda en el CUANDO cláusulas y, si lo encuentra, devolverá el resultado en la cláusula THEN correspondiente. De lo contrario, devolverá la cláusula else. Si no se especifica la cláusula else, devolverá un valor NULL.
Sintaxis
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Ejemplo
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Producción
Tipo de devolución
La expresión CASE devuelve el resultado dependiendo del contexto donde se utiliza. Por ejemplo:
- Si se usa en el contexto de la cadena, devuelve el resultado de la cadena.
- Si se usa en un contexto numérico, devuelve el valor entero, flotante y decimal.
Soporte de versión MySQL
La declaración CASE puede admitir las siguientes versiones de MySQL:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- mysql 5.0
- mysql 4.1
- mysql 4.0
- MySQL 3.23.3
Creemos una tabla ' estudiantes ' y realice la declaración CASE en esta tabla.
arquitectura Linux
En la tabla anterior podemos ver que el columna de clase contiene la forma abreviada del departamento del estudiante. Por eso vamos a cambiar la forma corta del departamento por la forma completa. Ahora, ejecute la siguiente consulta para realizar esta operación.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Después de la ejecución exitosa de la consulta anterior, obtendremos el siguiente resultado. Aquí podemos ver que el departamento La columna contiene un formulario completo en lugar de un formulario breve.