sábado, 30 de julho de 2011

Função Case no Mysql

Função Case Mysql

Assim como a função CASE é necessária quando estamos programando, ela também é muito útil em consultas SQL.
Temos duas sintaxes para a função:
Sintaxe 1 - compara a expressão especificada (valor) com um conjunto de expressões (WHEN) e retorna o valor especificado (THEN). Se nenhuma comparação for válida ele retorna o valor especificado determinado pelo ELSE. Não é obrigatória a utilização do ELSE, caso ele não seja especificado e não seja encontrada nenhuma correspondência entre os valores o retorno será NULL.
CASE valor
WHEN comparação THEN retorno (repetir para cada comparação)
[ELSE retorno]
END
Ex.:
SELECT
CASE contrato
WHEN 1 THENCLT
WHEN 2 THENPJ
ELSEInválido
END;
FROM programadores p;
Sintaxe 2 – Determina seu retorno utilizado expressões booleanas. A primeira condição verdadeira determina o resultado. Caso nenhuma condição seja atendida, o retorno vem do ELSE e se ele não for especificado o resultado é NULL.
Ex.:
CASE
WHEN condition THEN retorno (repetir para cada condição)
[ELSE retorno]
END
Ex.:
SELECT id_programador,
CASE
WHEN salario <= 1000 THENAumento 10%
WHEN salario >1000 AND salario < 5000 THENAumento 5%
ELSEAumento 2%
END
FROM programadores p;
A utilização de ambas as sintaxes não estão restritas apenas ao SELECT. Segue abaixo, a aplicação da segunda sintaxe na atualização do salário do programadores.
UPDATE
programadores
SET
salario = salario +
CASE
WHEN
salario <= 1000 THEN ((salario*10)/100)
WHEN salario >1000 AND salario < 5000 THEN ((salario*5)/100)
ELSE ((salario*2)/100)
END;



Att,
Leonardo Rocha

Nenhum comentário:

Postar um comentário

Informações de contato
Nome:
E-mail:
Telefone: