As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
CASEexpressão condicional
A expressão CASE é uma expressão condicional, semelhante às instruções if/then/else encontradas em outras linguagens. CASE é usado para especificar um resultado com várias condições. Use CASE onde uma SQL expressão é válida, como em um SELECT comando.
Há dois tipos de expressões CASE: simples e pesquisada.
-
Em expressões CASE simples, uma expressão é comparada a um valor. Quando uma correspondência é encontrada, a ação especificada na cláusula THEN é aplicada. Se nenhuma correspondência é encontrada, a ação especificada na cláusula ELSE é aplicada.
-
Em expressões CASE pesquisadas, cada CASE é avaliado com base em uma expressão booliana e a instrução CASE retorna o primeiro CASE correspondente. Se nenhuma correspondência for encontrada entre as WHEN cláusulas, a ação na ELSE cláusula será retornada.
Sintaxe
CASEDeclaração simples usada para corresponder às condições:
CASE expression WHEN value THEN result [WHEN...] [ELSE result] END
CASEDeclaração pesquisada usada para avaliar cada condição:
CASE WHEN condition THEN result [WHEN ...] [ELSE result] END
Argumentos
- expressão
-
Um nome de coluna ou qualquer expressão válida.
- value
-
Valor ao qual a expressão é comparada, tal como uma constante numérica ou string de caracteres.
- resultado
-
O valor ou uma expressão de destino retornado quando uma expressão ou condição booleana é avaliada. Os tipos de dados de todas as expressões de resultados devem poder ser convertidos em um único tipo de saída.
- condição
-
Uma expressão booliana que avalia como verdadeiro ou falso. Se a condição for verdadeira, o valor da CASE expressão será o resultado que segue a condição e o restante da CASE expressão não será processado. Se a condição for falsa, todas as WHEN cláusulas subsequentes serão avaliadas. Se nenhum resultado da WHEN condição for verdadeiro, o valor da CASE expressão será o resultado da ELSE cláusula. Se a ELSE cláusula for omitida e nenhuma condição for verdadeira, o resultado será nulo.
Exemplos
Use uma CASE expressão simples para New York City
substituir por Big
Apple
em uma consulta na VENUE tabela. Substitua todos os outros nomes de cidade por other
.
select venuecity, case venuecity when 'New York City' then 'Big Apple' else 'other' end from venue order by venueid desc;
venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...
Use uma CASE expressão pesquisada para atribuir números de grupos com base no PRICEPAID valor da venda de ingressos individuais:
select pricepaid, case when pricepaid <10000 then 'group 1' when pricepaid >10000 then 'group 2' else 'group 3' end from sales order by 1 desc;
pricepaid | case ----------+--------- 12624 | group 2 10000 | group 3 10000 | group 3 9996 | group 1 9988 | group 1 ...