Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — FCC 2025

Banco de DadosConsultas 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, é
  1. ASELECT * FROM processos WHERE processo = 'Em andamento' AND data_inicio = 2023 ORDER BY data_inicio ASC;
  2. BSELECT * FROM processos WHERE status = 'Em andamento' AND  data_inicio = 2023 ORDER BY descricao ASC· ,
  3. CSELECT * FROM processos WHERE descricao = 'Em andamento' AND YEAR (data_inicio) = 2023 ORDER BY numero _processo ASC;
  4. DSELECT * FROM processos WHERE status = 'Em andamento' AND YEAR (data_inicio) = 2023 ORDER BY data_inicio ASC;
  5. 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.

  1. 1Filtro: status = 'Em andamento'
  2. 2Filtro: YEAR(data_inicio) = 2023
  3. 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.

Gabarito: letra D

Link permanente: /questoes/fc150338