Usando CASE MySQL

Fala pessoal Código Master, tudo de bom?

Hoje, quero falar um pouco sobre um recurso muito utilizado na progração, porém pouco explorado por uma parte dos programadores iniciantes, que é o CASE, neste caso, CASE em banco de dados MySQL.

O CASE simula um switch em um banco de dados MySQL.

Pode ser utilizado livre, dentro de uma estrutura como por exemplo uma procedure, ou mesmo em uma consulta SELECT

Um CASE possui basicamente duas sintaxes, como pode ser visto abaixo.

Primeiro formato de declaração: case_value.

O case_value é uma condição que será devidamente comparada em cada cláusula WHEN até que um deles atenda. Quando um valor igual é encontrado, a cláusula THEN correspondente é executada.

Se nenhum valor igual for encontrado, a cláusula ELSE será executada por padrão, caso haja um ELSE definido.

O segundo formato de declaração é chamado de when_value.

Semelhante à primeira declaraçõ, cada expressão de condição de pesquisa da cláusula WHEN é avaliada até que uma seja verdadeira e a cláusula THEN correspondente será executada.

Fonte: https://dev.mysql.com/doc/refman/5.7/en/case.html

Cada statement_list consiste em uma ou mais instruções SQL. Não é permitida uma statement_list vazia.

Para lidar com situações em que nenhum valor é correspondido por nenhuma cláusula WHEN, use um ELSE que contenha um bloco BEGIN … END vazio, conforme mostrado neste exemplo.

Bom, já vimos como funciona a declaração do CASE. Veja um exemplo de como aplicar o conceito em casos reais.

Considere a seguinte tabela;

Ao realizarmos a consulta no banco, temos o seguinte resultado:

Digamos que desejamos saber, dos clientes cadastrados, quais são maior de idade. Então, podemos utilizar o CASE em nossa consulta, da seguinte forma:

Observe que o valor NULL, foi considerado na consulta, como menor de idade, pois não corresponde à condição de age > 18. Podemos nestes casos adicionar mais condições que atendam ao esperado.

Veja um novo exemplo:

Veja que aplicando mais condiões ao nosso CASE, conseguimos segar a um resultado satisfatório.

Vamos alterar a idade da client “Maria Eduarda” para 18 anos por exemplo, para podermos utilizar a outra sintaxe apresentada do CASE.

Agora temos:

Vejamos como ficaria uma outra estrutura do CASE:

Obtivemos o seguitne resultado:

Bom, é isso. Espero que tenham gostado e nos vemos na próxima.

 

Compartilhe:


Você pode gostar também de ...

Leave a Reply

Your email address will not be published. Required fields are marked *