Categorias

Estrutura de condição CASE em queries SQL no mySQL

Por mais que a modelagem do nosso sistema esteja “100%”, pode acontecer de você precisar montar uma query SQL que não estava prevista e que os dados não estavam modelados exatamente como tem que sair na consulta, isso geralmente acontece comigo na na hora de construir relatórios. Ou simplesmente é necessário criar uma estrutura condicional dentro da própria cláusula SQL.

Abaixo mostro um exemplo extremamente simples de como é possível criar uma estrutura condicional utilizando CASE na SQL, mais especificamente no mySQL.

Observe o código e delicie-se!

SELECT estado, 
    CASE WHEN sigla IN ('PR', 'RS', 'SC') THEN 'Sul'
	 WHEN sigla IN ('SP', 'RJ', 'ES', 'MG') THEN 'Sudeste'
	 WHEN sigla IN ('MT', 'MS', 'GO') THEN 'Centro-Oeste'
	 WHEN sigla IN ('BA', 'AL', 'SE', 'PB', 'PE', 'RN', 'CE', 'PI', 'MA') THEN 'Nordeste'
	 WHEN sigla IN ('AM', 'RR', 'AP', 'PA', 'TO', 'RO', 'AC') THEN 'Norte'
         ELSE '' END AS regiao
FROM enderecos
ORDER BY estado;

Só para esclarecer os que (por acaso) ficaram perdidos, na expressão acima, criamos uma consulta em uma tabela chamada enderecos onde temos os campos estado e sigla porém temos que mostrar também a região do Brasil no qual o estado faz parte.

Criamos então o alias regiao onde, com um simples CASE utilizando o operador IN podemos verificar de uma só vez uma lista de valores, o que simplifica deveras o trabalho!

No fim das contas, teremos disponível também em nossa consulta a informação regiao! Que lindo!!!