A expressão MySQL CASE é uma parte da função de fluxo de controle que nos permite escrever um if-else ou if-then-else lógica para uma consulta. Esta expressão pode ser usada em qualquer lugar que utilize um programa ou consulta válida, como SELECT, WHERE, cláusula ORDER BY, etc.
A expressão CASE valida diversas condições e retorna o resultado quando a primeira condição é verdadeiro . Assim que a condição for atendida, ele para de percorrer e fornece a saída. Se não encontrar nenhuma condição verdadeira, ele executa o senão bloquear . Quando o bloco else não é encontrado, ele retorna um NULO valor. O principal objetivo MySQL A instrução CASE serve para lidar com várias instruções IF na cláusula SELECT.
Podemos usar a instrução CASE de duas maneiras, que são as seguintes:
1. Instrução CASE simples:
O primeiro método é pegar um valor e combiná-lo com a instrução fornecida, conforme mostrado abaixo.
ordenar um array java
Sintaxe
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
Ele retorna o resultado quando o primeiro comparar_valor a comparação se torna verdadeira. Caso contrário, retornará a cláusula else.
Exemplo
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
Saída
Após a execução bem-sucedida do comando acima, veremos a seguinte saída.
2. Declaração CASE pesquisada:
O segundo método consiste em considerar um condição_pesquisa no QUANDO cláusulas e, se encontrar, retornará o resultado na cláusula THEN correspondente. Caso contrário, retornará a cláusula else. Se a cláusula else não for especificada, ela retornará um valor NULL.
Sintaxe
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
Exemplo
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
Saída
Tipo de retorno
A expressão CASE retorna o resultado dependendo do contexto onde é usada. Por exemplo:
- Se for usado no contexto de string, ele retornará o resultado da string.
- Se for usado em um contexto numérico, ele retorna o valor inteiro, flutuante e decimal.
Suporte à versão MySQL
A instrução CASE pode suportar as seguintes versões do 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
Vamos criar uma tabela ' estudantes ' e execute a instrução CASE nesta tabela.
Na tabela acima, podemos ver que o coluna de classe contém a forma abreviada do departamento do aluno. É por isso que vamos trocar o formato abreviado do departamento pelo formulário completo. Agora, execute a seguinte consulta para fazer esta operação.
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
Após a execução bem-sucedida da consulta acima, obteremos a seguinte saída. Aqui, podemos ver que o departamento coluna contém o formulário completo em vez de um formulário curto.
mb x gb