No banco de dados Oracle19, aberto e funcionando em condiçõ...

Próximas questões
Com base no mesmo assunto
Q3034860 Banco de Dados
No banco de dados Oracle19, aberto e funcionando em condições ideais, a expressão CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END é equivalente a:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Vamos analisar a questão proposta, que envolve o funcionamento do banco de dados Oracle19, especificamente o uso da expressão CASE WHEN em SQL. A questão pede qual função é equivalente à expressão CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END.

A alternativa correta é a letra D - COALESCE(expr1, expr2).

Para entender por que essa é a resposta correta, precisamos compreender o que a expressão e a função COALESCE fazem:

  • A expressão CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END verifica se expr1 não é NULL. Se não for, retorna expr1; caso contrário, retorna expr2.
  • A função COALESCE(expr1, expr2) faz exatamente a mesma coisa: retorna o primeiro valor não NULL de uma lista de expressões. Portanto, se expr1 não for NULL, ela será retornada; caso contrário, expr2 será o resultado.

Agora, vamos explicar por que as outras alternativas estão incorretas:

  • A - COLLATION(expr1, expr2): Esta função não existe no Oracle para fazer essa operação. COLLATION está mais relacionada a definições de ordenação em strings.
  • B - COMPOSE(expr1, expr2): Esta função também não é relevante ao contexto da questão. Não corresponde a uma função padrão do Oracle que lida com NULL dessa forma.
  • C - COLLECT(expr1, expr2): A função COLLECT é usada para agregar coleções, não para lidar com NULL em expressões individuais.

Para resolver questões como essa, é importante ter familiaridade com as funções e expressões SQL usadas no Oracle. Uma boa estratégia é entender bem como cada função padrão do Oracle funciona, especialmente quando se trata de manipulação de dados.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

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

COALESCE(expr1, expr2) is equivalent to CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

diretinho do site, sem tirar nem por

https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/COALESCE.html

Clique para visualizar este comentário

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