

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á.

# Expressão condicional CASE
<a name="CASE_function"></a>

A expressão CASE é uma expressão condicional, semelhante às if/then/else declarações encontradas em outras linguagens. CASE é usada para especificar um resultado onde há várias condições. Use CASE onde uma expressão SQL é válida, como em um comando SELECT.

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 booleana e a instrução CASE retorna o primeiro CASE correspondente. Se nenhuma correspondência for encontrada entre as cláusulas WHEN, a ação na cláusula ELSE será retornada.

## Sintaxe
<a name="CASE_function-syntax"></a>

Instrução CASE simples usada para correspondência de condições:

```
CASE expression
  WHEN value THEN result
  [WHEN...]
  [ELSE result]
END
```

Instrução CASE pesquisada usada para avaliação de cada condição:

```
CASE
  WHEN condition THEN result
  [WHEN ...]
  [ELSE result]
END
```

## Argumentos
<a name="CASE_function-arguments"></a>

 *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 expressão CASE será o resultado que segue a condição e o restante da expressão CASE não será processado. Se a *condição* for falsa, todas as cláusulas WHEN subsequentes serão avaliadas. Se nenhum resultado da condição WHEN for verdadeiro, o valor da expressão CASE será o resultado da cláusula ELSE. Se a cláusula ELSE for omitida e não nenhuma condição for verdadeira, o resultado será nulo.

## Exemplos
<a name="CASE_function-examples"></a>

Use uma expressão CASE simples para substituir `New York City` por `Big Apple` em uma consulta da tabela VENUE. 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 expressão CASE pesquisada para atribuir números de grupo com base no valor PRICEPAID para vendas individuais de ingresso:

```
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
...
```