Questão de Banco de Dados — Consultas e Comandos em SQL — FUNDATEC 2025
Banco de Dados›Consultas e Comandos em SQL
Código
qa699087
Banca
FUNDATEC
Órgão
GHC
Ano
2025
Cargo
Prog ( )
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:
Figura 1 – Modelo Entidade-Relacionamento (ER)
Dicionário de dados
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 argumento não nulo da lista; como o objetivo é 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 contêm erros de grafia na função (coalece, coalese) ou invertem a ordem dos argumentos.
A função COALESCE é uma função padrão do SQL (presente em SGBDs como PostgreSQL, MySQL, Oracle, SQL Server) que recebe uma lista de expressões e retorna a primeira que não for NULL. Ela é amplamente utilizada para tratar valores nulos em consultas, substituindo-os por um valor padrão. A sintaxe é COALESCE(expr1, expr2, ..., exprn), e o resultado é o primeiro valor não nulo encontrado, avaliando as expressões da esquerda para a direita.
No contexto da questão, a tabela funcionario permite valores nulos no campo fun_nome. O objetivo é exibir o fun_id e, quando fun_nome for nulo, mostrar 'Nome não informado'. Para isso, a função deve receber fun_nome como primeiro argumento e o texto substituto como segundo: coalesce(fun_nome, 'Nome não informado'). Se a ordem fosse invertida, coalesce('Nome não informado', fun_nome), o resultado seria sempre 'Nome não informado', pois o texto nunca é nulo — o que tornaria a consulta inútil para o propósito.
A pegadinha da banca está em duas frentes: (1) a grafia correta da função, que é COALESCE (com 's' e 'c' no final), e (2) a ordem dos argumentos. As alternativas B e E escrevem coalece (faltando o 's'), a alternativa D escreve coalese (trocando a posição do 's' e 'c'), e as alternativas C, D e E invertem a ordem dos argumentos. Apenas a alternativa A apresenta a grafia e a ordem corretas.
PEGA ESSA DICA!
Para memorizar a grafia, lembre-se de que COALESCE vem do inglês "coalesce", que significa "unir-se, fundir-se" — a palavra tem 's' antes do 'c' final. Na prova, desconfie de qualquer variação como coalece ou coalese, pois são erros comuns de digitação que a banca usa como distrator.
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa apresenta a sintaxe correta da função COALESCE, com a grafia certa e a ordem adequada dos argumentos: coalesce(fun_nome, 'Nome não informado'). Isso garante que, quando fun_nome for nulo, o texto substituto seja exibido; caso contrário, o próprio nome é retornado. A consulta seleciona fun_id e o resultado da função com o alias nome, atendendo exatamente ao que o enunciado pede.
Alternativa B — ❌ Incorreta
A alternativa B escreve coalece, com erro de grafia — falta a letra 's' no final da função. A função correta é COALESCE. Esse é um distrator clássico de banca, que explora a semelhança visual entre as palavras.
Alternativa C — ❌ Incorreta
A alternativa C inverte a ordem dos argumentos: coalesce('Nome não informado', fun_nome). Como o primeiro argumento é um texto literal (nunca nulo), a função sempre retornará 'Nome não informado', independentemente do valor de fun_nome. Isso não atende ao requisito de substituir apenas os valores nulos.
Alternativa D — ❌ Incorreta
A alternativa D apresenta dois erros: a grafia coalese (incorreta, pois o correto é coalesce) e a inversão da ordem dos argumentos ('Nome não informado' primeiro). Ambos os erros tornam a consulta inválida ou com comportamento incorreto.
Alternativa E — ❌ Incorreta
A alternativa E combina o erro de grafia coalece com a inversão da ordem dos argumentos. Assim como na alternativa C, a função retornaria sempre 'Nome não informado', e a grafia incorreta invalida a sintaxe.