Função de ER CASE
A função CASE
avalia o valor da expressão especificada em relação às opções alternativas especificadas e retorna o resultado da primeira opção igual ao valor dessa expressão. Caso contrário, ela retorna o resultado padrão opcional, se um resultado padrão for especificado como o último argumento da função chamada não precedida por uma opção. O valor retornado pode ser um valor de qualquer um dos tipos de dados com suporte.
Sintaxe
CASE (expression, option 1, result 1[, option 2, result 2, …, option N, result N, default result])
Argumentos
expression
: Tipo de dados primitivo (booliano, numérico ou texto)
Uma expressão válida que retorna um valor do tipo de dados primitivo.
option 1
: Tipo de dados primitivo (booliano, numérico ou texto)
Uma expressão válida que retorna um valor do mesmo tipo de dados primitivo que o argumento expression
da função chamada. Esse argumento é obrigatório.
result 1
: Qualquer um dos tipos de dados com suporte
O resultado retornado que corresponde à opção anterior. Esse argumento é obrigatório.
option N
: Tipo de dados primitivo (booliano, numérico ou texto)
Uma expressão válida que retorna um valor do mesmo tipo de dados primitivo que o argumento expression
da função chamada. Esse argumento é opcional.
result N
: Qualquer um dos tipos de dados com suporte
O resultado retornado que corresponde à opção anterior. Esse argumento é opcional.
default result
: Qualquer um dos tipos de dados com suporte
O resultado que deve ser retornado se não houver correspondência. Esse argumento é opcional.
Valores de retorno
Qualquer um dos tipos de dados com suporte
O valor resultante de qualquer um dos tipos de dados com suporte.
Notas de uso
Uma exceção é gerada no tempo de execução se não houver correspondência e um resultado padrão opcional não estiver definido.
Todos os resultados devem ser especificados usando o mesmo tipo de dados. Uma exceção é gerada no momento do design se os tipos de dados dos resultados configurados não forem correspondentes.
Se o primeiro valor de resultado e o Nº valor de resultado forem valores do tipo de dados Contêiner (registro) ou Lista de registros, o resultado terá somente os campos existentes nos dois valores.
Exemplo
CASE( DATETIMEFORMAT( NOW(), "MM"), "10", "WINTER", "11", "WINTER", "12", "WINTER", "")
retorna a cadeia de caracteres "WINTER" se a data atual da sessão do aplicativo estiver entre outubro e dezembro. Caso contrário, retorna uma cadeia de caracteres em branco.