As expressões CASE permitem que você use a lógicaIF ... THEN ... ELSE nas expressões.
Em uma expressão case simples, CASE procura o primeiro parWHEN...THEN para o qual expr é igual a comparison_expr, em seguida, ela retorna return_expr. Se nenhum par WHEN...THEN encontrar esta condição e existir uma cláusula ELSE, entãoCASE retorna else_expr. Caso contrário, CASE retorna nulo.
Em uma expressão CASE, CASE pesquisa da esquerda para a direita até encontrar uma ocorrência da condição que é verdadeira, e em seguida retorna return_expr. Se nenhumacondiçãofor encontrada como verdadeira e existir uma cláusula ELSE, CASE retorna else_expr. Caso contrário, CASE retorna nulo.
Igual ao argumento else_expression
CASE { simple_case_expression
| searched_case_expression
}
[ ELSE else_expression ]
END
simple_case_expression::=
expr WHEN comparison_expr
THEN return_expr
[ WHEN comparison_expr
THEN return_expr ]...
searched_case_expression::=
WHEN condition THEN return_expr
[ WHEN condition THEN return_expr ]...
expr é a expressão básica a ser testada.
comparison_expr é a expressão com a qual expr está sendo testado. Deve ter o mesmo tipo de dados básicos (numérico ou texto) que expr.
condition é uma expressão condicional.
return_expr é o valor retornado quando uma correspondência é encontrada ou a condição é verdadeira.
As instruções a seguir retornam Baixo,Médio ou Alto, dependendo do valor de credit_limit:
CASE credit_limit WHEN 100 THEN 'Low' WHEN 5000 THEN 'High' ELSE 'Medium'
A próxima instrução retorna o salário real, se for maior ou igual a 2000, ou 2000 se for menor que esse.
CASE WHEN salary > 2000 THEN salary ELSE 2000 END
Copyright © 2003, 2007, Oracle. Todos os direitos reservados.