Considere a expressão PL/SQL de um banco de dados Oracle 19 ...
CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END
A função equivalente a essa expressão é:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - COALESCE(expr1, expr2)
Para compreender o tema dessa questão, é importante conhecer a expressão CASE e a função COALESCE no contexto do PL/SQL, a linguagem procedural da Oracle. A expressão CASE é uma estrutura condicional que permite executar diferentes ações com base nas condições especificadas. O funcionamento é semelhante a um if-else em outras linguagens de programação. A expressão apresentada na questão verifica se expr1 não é nula e, se for verdadeiro, retorna expr1; caso contrário, retorna expr2.
A função COALESCE, por outro lado, é uma função que recebe uma lista de argumentos e retorna o primeiro valor não nulo na lista. Se todos os valores forem nulos, a função retornará nulo. Em outras palavras, ela faz uma verificação sequencial nos argumentos fornecidos até encontrar um que não seja nulo e o retorna.
A razão pela qual a Alternativa A é a correta está no fato de que COALESCE(expr1, expr2) efetivamente realiza a mesma operação descrita pela expressão CASE na questão. Se expr1 não for nulo, expr1 será retornado, e se for nulo, expr2 será retornado, exatamente como a expressão CASE faz.
As outras alternativas são funções que realizam operações distintas e não são equivalentes à expressão CASE apresentada:
- B - CHR: Converte um número na tabela de códigos de caracteres para um caractere.
- C - COMPOSE: Monta uma string de caracteres Unicode baseada na sequência de elementos Unicode fornecida.
- D - COLLATION: Não é uma função, mas sim um conceito referente à ordenação de strings em determinado local ou linguagem.
- E - COLLECT: Uma função de agregação que retorna um conjunto de elementos.
Assim, ao entender o funcionamento tanto da expressão CASE quando da função COALESCE, fica claro que a única função que pode substituir a expressão CASE fornecida é o COALESCE, que também busca o primeiro valor não nulo em uma lista de valores.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
A função (coalesce) é usada para retornar o primeiro valor não nulo em uma lista de expressões.
coalesce = senao tem um, vem outro
a-
CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END. <-> COALESCE(expr1, expr2)
The COALESCE function returns the first non-null expression from the list of expressions provided. In your case, if expr1 is not null, it will be returned; otherwise, expr2 will be returned.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo