Analise a seguinte expressão SQL e assinale a alternativa correta.select relacao_funcionarios.funcionario, relacao_funcionarios.cargo,case when relacao_funcionarios.area_cargo = 1 then 'Saúde' else 'Outros' end areafrom (select fun_nome funcionario, car_nome cargo,casewhen C.car_nome = 'Enfermeiro' then 1 else 0when C.car_nome = 'Medico' then 1 else 0when C.car_nome = 'Programador' then 2 else 0end area_cargofrom funcionario F, cargo Cwhere F.car_id = C.car_id) relacao_funcionarios
AA expressão SQL está correta e cria um campo em tempo de execução chamado area_cargo.
BA expressão SQL está correta e cria uma tabela em tempo de execução chamada relacao_funcionarios.
CA expressão SQL está incorreta, porque apresenta os funcionários repetidos para cada area_cargo.
DA expressão SQL está incorreta, porque a subconsulta pode retornar NULL.
EA expressão SQL está incorreta, porque há erro de sintaxe.
Revelar gabarito e comentário▾
GabaritoE — A expressão SQL está incorreta, porque há erro de sintaxe.
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”.
SQL: Expressão CASE e subconsulta
Gabarito: letra E. A expressão SQL apresenta erro de sintaxe na construção da cláusula CASE dentro da subconsulta. A forma como foi escrita, com else após cada when, é inválida. No SQL padrão, a sintaxe correta é:
CASE
WHEN condição1 THEN resultado1
WHEN condição2 THEN resultado2
...
ELSE resultado_default
END
No código dado, o else 0 aparece imediatamente após cada then 1, o que é proibido. O else deve vir apenas uma vez, no final da estrutura. Portanto, a afirmação de que há erro de sintaxe está correta.
1CASE
2WHEN condição THEN resultado
3WHEN condição THEN resultado
4ELSE resultado_default
5END
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que a expressão está correta e cria um campo area_cargo. Na verdade, a expressão contém erro de sintaxe, logo não está correta.
Alternativa B — ❌ Incorreta
Afirma que a expressão está correta e cria uma tabela relacao_funcionarios. O termo relacao_funcionarios é um alias para a subconsulta, não uma tabela. Além disso, a sintaxe está errada.
Alternativa C — ❌ Incorreta
Sugere que o erro é a repetição de funcionários para cada area_cargo. Embora a ausência de GROUP BY em certos contextos pudesse gerar repetições, aqui o erro primário é de sintaxe; a repetição não é o problema apontado.
Alternativa D — ❌ Incorreta
Menciona que a subconsulta pode retornar NULL. Mesmo que pudesse, o erro de sintaxe é mais grave e anterior a qualquer análise de dados.
Alternativa E — ✅ Correta ⟵ GABARITO
A expressão SQL está incorreta devido a erro de sintaxe na cláusula CASE. A banca testa o conhecimento da estrutura correta do CASE, e a forma apresentada é inválida.
PEGA ESSA DICA!
Em SQL, lembre-se: o CASE usa um único ELSE opcional no final, não um ELSE por WHEN. Esse erro é comum em provas.