Como usar o Expression SQL CASE com pesquisa Condições

Uma forma poderosa para usar o SQL CASO

expressão é para procurar uma mesa para linhas em que uma condição de pesquisa especificada for verdadeira. Se você usar CASO Desta forma, a expressão utiliza a seguinte sintaxe:

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 atenda 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 nenhuma 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 as medidas adequadas, ele processa a próxima linha. Esta sequência continua até que a instrução SQL termina de processar a tabela inteira.

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 um ATUALIZAR declaração, por exemplo, para fazer alterações em valores de tabela - com base em determinadas condições. Considere o seguinte exemplo:

ATUALIZAÇÃO FOODSSET RATING = 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 é devolvido, após o que a instrução ignora o resto das condições.

Uma tabela de base de dados que mostra o teor de gordura de 100 gramas de determinados alimentos pode conter um CLASSIFICAÇÃ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 aspargos 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 importante de CASO é evasão de exceção - verificação de condições que causam erros.

Considere um caso que determina a compensação para os vendedores. As empresas que compensam seus vendedores por comissão reta muitas vezes pagam 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 o comissionamento do sorteio é eliminado gradualmente como suas comissões subir:

ATUALIZAÇÃO SALES_COMPSET COMP = COMISSÃO + CASEWHEN COMISSÃO> 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 permitir que isso aconteça. 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, todos os caracteres, ou todos data. O resultado da CASO expressão também é do mesmo tipo.

menu