Para responder à questão, considere o modelo Entidade-Relacionamento (ER)
apresentado pela Figura 1 abaixo, bem como o dicionário de dados apresentado logo em
seguida:
Considerando que a tabela funcionario permite incluir registros com valores nulos (NULL) no campo fun_nome, qual alternativa apresenta a expressão SQL correta para substituir apenas os valores nulos, do campo fun_nome, por “Nome não informado”?
Aselect fun_id, coalesce(fun_nome, 'Nome não informado') nome from funcionario
Bselect fun_id, coalece(fun_nome, 'Nome não informado') nome from funcionario
Cselect fun_id, coalesce('Nome não informado', fun_nome) nome from funcionario
Dselect fun_id, coalese('Nome não informado', fun_nome) nome from funcionario
Eselect fun_id, coalece('Nome não informado', fun_nome) nome from funcionario
Revelar gabarito e comentário▾
GabaritoA — select fun_id, coalesce(fun_nome, 'Nome não informado') nome from funcionario
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Função COALESCE no SQL
Gabarito: letra A. A função COALESCE retorna o primeiro valor não nulo da lista de argumentos; portanto, para substituir apenas os valores nulos de fun_nome por 'Nome não informado', a ordem correta é COALESCE(fun_nome, 'Nome não informado') — se fun_nome for nulo, retorna o texto; caso contrário, retorna o próprio nome. As demais alternativas apresentam erros de grafia na função ou invertem a ordem dos argumentos.
A função COALESCE é uma função padrão do SQL (definida no padrão SQL:2003 e suportada pela maioria dos SGBDs relacionais, como PostgreSQL, MySQL, Oracle, SQL Server) que recebe uma lista de expressões e retorna a primeira que não seja NULL. É uma forma elegante de tratar valores nulos em consultas, evitando o uso de CASE WHEN ... THEN ... ELSE ... END ou de IFNULL/NVL (que são específicos de cada banco).
A sintaxe é: COALESCE(expr1, expr2, ..., exprN). O SQL avalia cada expressão na ordem em que aparecem e retorna a primeira que não for nula. Se todas forem nulas, retorna NULL. No caso da questão, queremos que, quando fun_nome for nulo, apareça o texto 'Nome não informado'; quando não for nulo, apareça o próprio valor do campo. Por isso, a ordem correta é colocar fun_nome primeiro e o texto substituto em segundo: COALESCE(fun_nome, 'Nome não informado').
Se invertermos a ordem — COALESCE('Nome não informado', fun_nome) — o resultado seria sempre o texto 'Nome não informado', pois ele nunca é nulo, e o valor real do campo nunca apareceria. Isso tornaria a consulta inútil para o propósito de exibir o nome real quando ele existe.
A banca explora dois erros clássicos: (1) a grafia incorreta da função (coalece, coalese em vez de coalesce) e (2) a inversão da ordem dos argumentos. O candidato que conhece a sintaxe exata e o comportamento da função elimina as alternativas com erros de digitação e identifica a ordem correta.
NÃO CAIA NESSA!
A banca troca a grafia da função (coalece, coalese) e inverte a ordem dos argumentos. O candidato que decora a sintaxe sem entender o comportamento erra ao escolher a alternativa com a ordem invertida, que retornaria sempre o texto fixo, ignorando o valor real do campo.
COALESCE
1Sintaxe
COALESCE(expr1, expr2, ..., exprN)
Retorna 1º valor não nulo
2Ordem dos argumentos
COALESCE(fun_nome, 'Nome não informado')
fun_nome nulo → texto substituto
fun_nome preenchido → valor real
COALESCE('Nome não informado', fun_nome)
Sempre retorna o texto fixo
Ignora o valor real do campo
3Erros comuns
Grafia incorreta (coalece, coalese)
Ordem invertida dos argumentos
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa apresenta a sintaxe correta da função COALESCE com a ordem adequada: COALESCE(fun_nome, 'Nome não informado'). Isso garante que, para cada registro, se fun_nome for nulo, o resultado será o texto 'Nome não informado'; caso contrário, será o valor do próprio campo. O alias nome é opcional e apenas renomeia a coluna no resultado.
Alternativa B — ❌ Incorreta
A alternativa apresenta erro de grafia: coalece em vez de coalesce. A função correta é COALESCE, com 's' antes do 'c' final. Esse erro de digitação torna o comando inválido em qualquer SGBD.
Alternativa C — ❌ Incorreta
A alternativa apresenta a ordem invertida dos argumentos: COALESCE('Nome não informado', fun_nome). Como o primeiro argumento é uma string literal (nunca nula), a função sempre retornará 'Nome não informado', ignorando o valor real de fun_nome. Isso não atende ao requisito de substituir apenas os valores nulos.
Alternativa D — ❌ Incorreta
A alternativa apresenta erro de grafia: coalese em vez de coalesce, além de inverter a ordem dos argumentos. A função correta é COALESCE, e a ordem deveria ser COALESCE(fun_nome, 'Nome não informado').
Alternativa E — ❌ Incorreta
A alternativa apresenta erro de grafia: coalece em vez de coalesce, além de inverter a ordem dos argumentos. A função correta é COALESCE, e a ordem deveria ser COALESCE(fun_nome, 'Nome não informado').