Como usar a expressão caso sql com condições de pesquisa
Uma forma poderosa para usar o SQL CASO
Conteúdo
CASEWHEN condition1 ENTÃO result1WHEN condition2 ENTÃO result2 ... QUANDO condiçãon ENTÃO resultarnELSE resultadoXFIM
CASO examina o primeiro linha qualificada (A primeira linha que preenche as condições da envolvente ONDE cláusula, se houver) para ver se condition1 é verdade. Se for, o CASO expressão recebe um valor de result1.
E se condition1 não é verdade, CASO avalia a linha para condition2. E se condition2 é verdade, o CASO expressão recebe o valor de result2, e assim por diante. Se nenhuma das condições estabelecidas forem verdadeiras, o CASO expressão recebe o valor de resultx.
o OUTRO cláusula é opcional. Se a expressão não tem OUTRO cláusula e nenhuma das condições especificadas são verdadeiras, a expressão recebe um valor nulo. Após a instrução SQL que contém o CASO expressão aplica-se para a primeira linha de qualificação em uma mesa e toma a ação apropriada, ele processa a próxima linha. Essa sequência continua até que a instrução SQL termina o processamento da tabela inteira.
Video: SQL + Banco de Dados
atualizar valores com base em uma condição
Porque você pode incorporar um CASO expressão dentro de uma instrução SQL em quase qualquer lugar um valor é possível, esta expressão dá-lhe uma enorme flexibilidade. Você pode usar CASO dentro de uma ATUALIZAR declaração, por exemplo, para fazer alterações em valores de tabela - com base em certas condições. Considere o seguinte exemplo:
ACTUALIZAÇÃO FOODSSET CLASSIFICAÇÃO = CASEWHEN FAT lt; 1Então `muito baixo fat`WHEN FAT lt; 5Então `baixo fat`WHEN FAT lt; 20Then `moderado fat`WHEN FAT lt; ataque city`END coração 50THEN `high fat`ELSE` -
Esta declaração avalia a QUANDO condições em ordem, até que o primeiro valor verdadeiro é retornado, após o qual a declaração ignora o resto das condições.
Uma tabela de banco de dados que mostra o teor de gordura de 100 gramas de determinados alimentos podem conter uma AVALIAÇÃO coluna que dá uma rápida avaliação do significado do conteúdo de gordura. Se você executar o anterior ATUALIZAR na mesa de FOODS, a declaração atribui espargos um valor de muito baixo teor de gordura, dá frango um valor de baixo teor de gordura, e coloca amêndoas torradas no cidade ataque cardíaco categoria.
Evite condições que causam erros
Outro uso valioso de CASO é evitação excepção - a verificação de condições que causam erros.
Video: Aula 1279 banco de dados SQL MySQL - Group By
Considere um caso que determina a compensação para os vendedores. As empresas que compensam seus vendedores pela Comissão direta muitas vezes pagam os seus novos funcionários, dando-lhes um desenhar contra as futuras comissões são esperados para ganhar. No exemplo a seguir, novos vendedores recebem um empate contra Comissão- o sorteio é eliminada gradualmente à medida que as suas comissões subir:
ACTUALIZAÇÃO SALES_COMPSET COMP = comissões + CASEWHEN COMISSÃO gt; DRAWTHEN 0WHEN COMISSÃO lt; DRAWTHEN DRAWEND -
Se a comissão do vendedor é zero, a estrutura neste exemplo evita uma operação de divisão por zero, o que causaria um erro se permitido. Se o vendedor tem uma comissão diferente de zero, a remuneração total é a comissão mais um empate que é reduzido na proporção do tamanho da comissão.
Todos os ENTÃO expressões em um CASO expressão deve ser do mesmo tipo - tudo numérico, todo o caráter, ou a totalidade data. O resultado da CASO expressão também é do mesmo tipo.