logo

Expressió MySQL CASE

L'expressió MySQL CASE és una part de la funció de flux de control que ens permet escriure un si-una altra cosa o si-aleshores-una altra cosa lògica a una consulta. Aquesta expressió es pot utilitzar en qualsevol lloc que utilitzi un programa o una consulta vàlid, com ara la clàusula SELECT, WHERE, ORDER BY, etc.

L'expressió CASE valida diverses condicions i retorna el resultat quan és la primera condició veritat . Un cop es compleix la condició, deixa de travessar i dóna la sortida. Si no troba cap condició certa, executa el fitxer altre bloc . Quan no es troba el bloc else, retorna a NUL valor. L'objectiu principal de MySQL La instrucció CASE és tractar amb múltiples sentències IF a la clàusula SELECT.

Podem utilitzar la instrucció CASE de dues maneres, que són les següents:

1. Declaració CASE simple:

El primer mètode és prendre un valor i relacionar-lo amb la instrucció donada, tal com es mostra a continuació.

1 milió quants 0

Sintaxi

 CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END 

Torna el resultat quan el primer compara_valor la comparació es fa realitat. En cas contrari, retornarà la clàusula else.

Exemple

 mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END; 

Sortida

Després de l'execució correcta de l'ordre anterior, veurem la següent sortida.

Expressió MySQL CASE

2. Declaració CASE cercada:

El segon mètode és considerar a condició_de_cerca en el QUAN clàusules, i si troba, retorna el resultat a la clàusula THEN corresponent. En cas contrari, retornarà la clàusula else. Si no s'especifica la clàusula else, retornarà un valor NULL.

Sintaxi

 CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 

Exemple

 mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END; 

Sortida

Expressió MySQL CASE

Tipus de retorn

L'expressió CASE retorna el resultat en funció del context on s'utilitza. Per exemple:

  • Si s'utilitza en el context de la cadena, retorna el resultat de la cadena.
  • Si s'utilitza en un context numèric, retorna el valor enter, flotant i decimal.

Suport a la versió MySQL

La instrucció CASE pot suportar les següents versions 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

Creem una taula' estudiants ' i realitzeu la instrucció CASE en aquesta taula.

Expressió MySQL CASE

A la taula anterior, podem veure que el columna de classe conté la forma breu del departament de l'estudiant. És per això que canviarem la forma curta del departament per la forma completa. Ara, executeu la consulta següent per fer aquesta operació.

 SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students; 

Després de l'execució correcta de la consulta anterior, obtindrem la següent sortida. Aquí, podem veure que el departament La columna conté la forma completa en lloc d'una forma curta.

genèrics java

Expressió MySQL CASE