Questão de Banco de Dados — Consultas e Comandos em SQL — FCC 2025
Banco de Dados›Consultas e Comandos em SQL
Código
fc150338
Banca
FCC
Órgão
Pref SP
Ano
2025
Cargo
Ana ( )
A equipe de Analistas de uma Prefeitura foi requisitada para providenciar e facilitar consultas aos processos municipais que se encontram registrados na tabela Processos em um Banco de Dados Relacional, com a seguinte estrutura: - id (INT): Identificador único do processo - numero_processo (VARCHAR): Número do processo - descricao (VARCHAR): Descrição do processo - data_inicio (DATE): Data de início do processo - status (VARCHAR): Status atual do processo (ex: 'Em andamento', 'Concluído', 'Pendente') - responsável (VARCHAR): Nome do responsável pelo processo A consulta SQL correta que retorna todos os processos que estão 'Em andamento' e foram iniciados no ano de 2023, ordenados pela data de início em ordem crescente, é
ASELECT * FROM processos WHERE processo = 'Em andamento' AND data_inicio = 2023 ORDER BY data_inicio ASC;
BSELECT * FROM processos WHERE status = 'Em andamento' AND data_inicio = 2023 ORDER BY descricao ASC· ,
CSELECT * FROM processos WHERE descricao = 'Em andamento' AND YEAR (data_inicio) = 2023 ORDER BY numero _processo ASC;
DSELECT * FROM processos WHERE status = 'Em andamento' AND YEAR (data_inicio) = 2023 ORDER BY data_inicio ASC;
ESELECT * FROM processos WHERE status = 'Em andamento' AND YEAR (data inicio) = 2023 ORDER BY responsavel ASC;
Revelar gabarito e comentário▾
GabaritoD — SELECT * FROM processos WHERE status = 'Em andamento' AND YEAR (data_inicio) = 2023 ORDER BY data_inicio ASC;
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: consulta com filtro e ordenação
Gabarito: letra D. A consulta correta deve filtrar os processos com status = 'Em andamento' e YEAR(data_inicio) = 2023, ordenando por data_inicio ASC. A alternativa D é a única que combina corretamente o nome da coluna status, a função YEAR() para extrair o ano da data e a ordenação pela coluna de data em ordem crescente.
A questão testa três conhecimentos básicos de SQL: a referência correta às colunas da tabela, o uso de funções de data para filtrar por ano e a cláusula ORDER BY para ordenar resultados. Vamos analisar cada um.
Primeiro, a estrutura da tabela Processos tem as colunas id, numero_processo, descricao, data_inicio, status e responsavel. Para filtrar processos 'Em andamento', a condição deve comparar a coluna status com o valor 'Em andamento'. Qualquer outra coluna, como descricao ou processo (que nem existe), estaria errada.
Segundo, para filtrar por ano, não se pode comparar diretamente a coluna data_inicio com um número, pois ela é do tipo DATE. É necessário usar a função YEAR() para extrair o ano da data e compará-lo com 2023. A sintaxe correta é YEAR(data_inicio) = 2023.
Terceiro, a ordenação deve ser feita pela coluna data_inicio em ordem crescente, usando ORDER BY data_inicio ASC. A palavra-chave ASC é opcional, pois a ordem padrão já é crescente, mas é válida e explícita.
A pegadinha da banca está em trocar a coluna correta do filtro (status por descricao ou processo) e a coluna de ordenação (data_inicio por descricao, numero_processo ou responsavel). Além disso, a comparação direta data_inicio = 2023 é inválida, pois data_inicio é do tipo DATE e precisa da função YEAR() para extrair o ano.
1Filtro: status = 'Em andamento'
2Filtro: YEAR(data_inicio) = 2023
3Ordenação: ORDER BY data_inicio ASC
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
O erro está em usar processo = 'Em andamento' — a coluna processo não existe na tabela; o correto é status. Além disso, data_inicio = 2023 compara a data diretamente com um número, o que é inválido para o tipo DATE; seria necessário YEAR(data_inicio) = 2023. A ordenação por data_inicio ASC está correta, mas os filtros já invalidam a consulta.
Alternativa B — ❌ Incorreta
O filtro status = 'Em andamento' está correto, mas data_inicio = 2023 é inválido — deveria ser YEAR(data_inicio) = 2023. Além disso, a ordenação por descricao ASC está errada, pois o enunciado pede ordenação pela data de início (data_inicio), não pela descrição.
Alternativa C — ❌ Incorreta
O filtro descricao = 'Em andamento' está errado — a coluna correta é status, pois é ela que armazena o status do processo. O uso de YEAR(data_inicio) = 2023 está correto, mas a ordenação por numero_processo ASC não atende ao pedido de ordenar pela data de início.
Alternativa D — ✅ Correta ⟵ GABARITO
Esta alternativa combina corretamente todos os elementos: filtra pela coluna status com o valor 'Em andamento', usa YEAR(data_inicio) = 2023 para selecionar processos do ano de 2023, e ordena por data_inicio ASC (ordem crescente da data de início). É a única que atende integralmente ao enunciado.
Alternativa E — ❌ Incorreta
O filtro status = 'Em andamento' e YEAR(data_inicio) = 2023 estão corretos, mas a ordenação por responsavel ASC está errada — o enunciado pede ordenação pela data de início (data_inicio), não pelo responsável.
NÃO CAIA NESSA!
A banca adora trocar a coluna do filtro (status por descricao ou processo) e a coluna de ordenação (data_inicio por descricao, numero_processo ou responsavel). Além disso, a comparação direta data_inicio = 2023 é inválida — é preciso usar YEAR(data_inicio) = 2023. Com treino, você enxerga essas trocas de longe 💪
PEGA ESSA DICA!
Para questões de SQL, leia o enunciado com atenção e identifique: (1) a tabela e as colunas envolvidas, (2) as condições do WHERE (verifique se há funções de data necessárias), e (3) a coluna de ordenação do ORDER BY. Monte a consulta mentalmente antes de olhar as alternativas.