Instrução CASE

A instrução CASE utiliza regras definidas em cláusulas WHEN para selecionar um bloco de instruções para processar.

Há duas formas de instrução CASE: a forma simples e a forma pesquisada.

SINTAXE

Na forma simples, a expressão principal é avaliada primeiro. Cada expressão da cláusula WHEN é avaliada sucessivamente até o resultado ser igual ao da expressão principal. As instruções dessa cláusula WHEN são executadas em seguida. Se nenhuma correspondência for encontrada e a cláusula ELSE opcional estiver presente, as instruções da cláusula ELSE são executadas em seu lugar. Os valores de teste não precisam ser literais. A única exigência é que a expressão principal e as expressões da cláusula WHEN avaliem tipos que podem ser comparados.

Na forma pesquisada, cada expressão da cláusula WHEN é avaliada sucessivamente até uma avaliar para TRUE. As instruções dessa cláusula WHEN são executadas em seguida. Se nenhuma das expressões avaliar para TRUE e a cláusula ELSE opcional estiver presente, as instruções da cláusula ELSE são executadas. Não precisa haver qualquer semelhança entre as expressões em cada cláusula CASE. A única exigência é que todas avaliem para um valor boolean.

A linguagem ESQL possui uma instrução CASE e uma função CASE (consulte Função CASE para obter detalhes da função CASE). A instrução CASE escolhe uma entre um conjunto de instruções para executar. A função CASE escolhe uma entre um um conjunto de instruções para avaliar e retorna como seu valor o valor de retorno da expressão escolhida.

Exemplos

Instrução CASE simples:
CASE size
    WHEN minimum + 0 THEN
        SET description = 'small';
    WHEN minimum + 1 THEN
        SET description = 'medium';
    WHEN minimum + 2 THEN
        SET description = 'large';
        CALL handleLargeObject();
          ELSE
    SET description = 'unknown';
        CALL handleError();
END CASE;
Instrução CASE pesquisada:
CASE
WHEN i <> 0 THEN
        CALL handleI(i);
  WHEN j > 1 THEN
        CALL handleIZeroAndPositiveJ(j);
          ELSE
        CALL handleAllOtherCases(j);
END CASE;
Conceitos relacionados
Visão Geral do ESQL
Tarefas relacionadas
Desenvolvendo ESQL
Referências relacionadas
Diagramas de Sintaxe: Tipos Disponíveis
instruções ESQL
Função CASE
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak04930_