No banco de dados Oracle19, aberto e funcionando em condiçõ...
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 ENDverifica seexpr1não éNULL. Se não for, retornaexpr1; caso contrário, retornaexpr2. - A função
COALESCE(expr1, expr2)faz exatamente a mesma coisa: retorna o primeiro valor nãoNULLde uma lista de expressões. Portanto, seexpr1não forNULL, ela será retornada; caso contrário,expr2será 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.COLLATIONestá 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 comNULLdessa forma. - C -
COLLECT(expr1, expr2): A funçãoCOLLECTé usada para agregar coleções, não para lidar comNULLem 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
Questão praticamente copiada dessa: Q2098311
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo