Em PL/SQL, COALESCE (expr1, expr2) é equivalente a
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