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 END
verifica seexpr1
nã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ãoNULL
de uma lista de expressões. Portanto, seexpr1
não forNULL
, 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 comNULL
dessa forma. - C -
COLLECT(expr1, expr2)
: A funçãoCOLLECT
é usada para agregar coleções, não para lidar comNULL
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