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 devolve o resultado da primeira opção que é igual ao valor da expressão especificada. Caso contrário, devolve o resultado predefinido opcional, se um resultado predefinido for especificado como o último argumento da função chamada que não é precedido por uma opção. O valor devolvido pode ser um valor de qualquer um dos tipos de dados suportados.
Sintaxe
CASE (expression, option 1, result 1[, option 2, result 2, …, option N, result N, default result])
Argumentos
expression
: Tipo de dados primitivos (Booleano, numérico ou texto)
Uma expressão válida que devolve um valor do tipo de dados primitivos.
option 1
: Tipo de dados primitivos (Booleano, numérico ou texto)
Uma expressão válida que devolve um valor do mesmo tipo de dados primitivos que o argumento expression
da função chamada. Este argumento é obrigatório.
result 1
: Qualquer um dos tipos de dados suportados
O resultado devolvido que corresponde à opção anterior. Este argumento é obrigatório.
option N
: Tipo de dados primitivos (Booleano, numérico ou texto)
Uma expressão válida que devolve um valor do mesmo tipo de dados primitivos que o argumento expression
da função chamada. Este argumento é opcional.
result N
: Qualquer um dos tipos de dados suportados
O resultado devolvido que corresponde à opção anterior. Este argumento é opcional.
default result
: Qualquer um dos tipos de dados suportados
O resultado que deve ser devolvido se não existir nenhuma correspondência. Este argumento é opcional.
Valores de retorno
Qualquer um dos tipos de dados suportados
O valor resultante de qualquer um dos tipos de dados suportados.
Notas de utilização
Uma exceção é iniciada durante a execução se não existir nenhuma correspondência e um resultado predefinido opcional não for definido.
Todos os resultados têm de ser especificados utilizando o mesmo tipo de dados. Uma exceção é iniciada durante a estruturação se os tipos de dados dos resultados configurados não corresponderem.
Se o primeiro valor de resultado e o valor de resultado Enésimo forem valores do tipo de dados Contentor (registo) ou Lista de registos, o resultado tem apenas os campos que existem em ambos os valores.
Exemplo
CASE( DATETIMEFORMAT( NOW(), "MM"), "10", "WINTER", "11", "WINTER", "12", "WINTER", "")
devolve a cadeia "INVERNO" se a data da sessão da aplicação atual for entre outubro e dezembro. Caso contrário, devolve uma cadeia em branco.