Em PL/SQL, COALESCE (expr1, expr2) é equivalente a

Próximas questões
Com base no mesmo assunto
Q356028 Banco de Dados
Em PL/SQL, COALESCE (expr1, expr2) é equivalente a
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: D - CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

A função COALESCE em PL/SQL é utilizada para retornar o primeiro valor não-nulo em uma lista de expressões. Esta é uma função bastante útil para lidar com valores nulos em consultas e operações de banco de dados, ajudando a estabelecer padrões de dados quando se depara com a eventual ausência de informações.

Na questão em questão, estamos comparando a função COALESCE com outras alternativas para entender seu equivalente lógico. A expressão COALESCE(expr1, expr2) vai verificar se expr1 é não-nulo e, se for, vai retorná-lo; caso contrário, irá retornar expr2.

Isso é diretamente equivalente à expressão CASE da alternativa D, onde explicitamente é feita a checagem: caso expr1 não seja nulo (expr1 IS NOT NULL), então expr1 é retornado; caso contrário (ELSE), a expressão expr2 é usada. É uma representação passo a passo do que a função COALESCE faz internamente.

É importante notar que a função COALESCE pode aceitar mais do que dois parâmetros, retornando o primeiro não-nulo na lista fornecida, enquanto que a expressão CASE é limitada às duas expressões na forma apresentada na alternativa D. No entanto, isso não afeta a equivalência no contexto da questão, que envolve apenas duas expressões.

Para entender por que as outras alternativas são incorretas, observe o seguinte:

  • A alternativa A sugere uma igualdade entre as expressões e uma checagem de não-nulidade que não corresponde à lógica da COALESCE.
  • A alternativa B se refere a uma função de substring e não tem relação com a checagem de valores nulos.
  • A alternativa C faz uma comparação para encontrar o valor máximo, o que não corresponde à funcionalidade da COALESCE.
  • A alternativa E menciona uma cláusula WHERE que é usada para filtros em consultas SQL e não tem relação com a operação de COALESCE.

Em resumo, a alternativa D é a correta porque captura exatamente o que a função COALESCE faz: verifica a primeira expressão e, se não for nula, a retorna; caso contrário, retorna a segunda expressão.

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

The Oracle/PLSQL COALESCE function returns the first non-null expression in the list. If all expressions evaluate to null, then the COALESCE function will return null.

Retorna o primeiro valor não nulo.

Ex.: SELECT COALESCE(idade, 0) FROM Pessoa

Se a idade for NULL, apresentará 0


Similar à função NVL.
NVL → Padrão Oracle.
COALESCE → Padrão ANSI.

A função COALESCE tem como objetivo retornar a primeira expressão não nula entre seus argumentos. Se todas as expressões forem não anuláveis (nonnullable), o resultado será digitado como nonnullable. Caso todas as expressões forem nulas, o resultado será NULL. O comando equivale ao comando:
CASE
   WHEN expr1 IS NOT NULL THEN
   expr1
ELSE
   expr2
END;

RESPOSTA: D

 

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo