Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2026

Banco de DadosSQL
Código
fg133913
Banca
FGV
Órgão
TJ-RJ
Ano
2026
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação - Analista de Sistemas
O programador Luiz está acessando uma tabela armazenada em um banco de dados PostgreSQL. A cláusula que Luiz deve utilizar para retornar 20 registros, pulando os 40 primeiros, é:
  1. ATOP 20 :: 40
  2. BTOP 20 LIMIT 40
  3. CLIMIT 20 START 40
  4. DLIMIT 20 OFFSET 40
  5. EFETCH 20 ROWS OFFSET 40
Revelar gabarito e comentário

GabaritoD — LIMIT 20 OFFSET 40

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”.

Cláusulas de limitação e deslocamento em consultas SQL (PostgreSQL)

Gabarito: letra D. No PostgreSQL, a cláusula LIMIT define o número máximo de registros retornados e OFFSET quantos registros devem ser pulados antes de começar a retornar. A combinação LIMIT 20 OFFSET 40 retorna 20 registros após pular os 40 primeiros, exatamente o que o enunciado pede.

A questão testa a familiaridade com a sintaxe específica do PostgreSQL para paginação. Enquanto outros SGBDs usam TOP (SQL Server) ou FETCH FIRST ... ROWS ONLY (padrão SQL:2008), o PostgreSQL utiliza LIMIT e OFFSET. Vejamos cada alternativa:

Cláusula

Sintaxe no PostgreSQL

Efeito

Correta?

A

TOP 20 :: 40

Inválida (não existe em nenhum SGBD)

B

TOP 20 LIMIT 40

Inválida (mistura TOP com LIMIT; LIMIT 40 limitaria a 40, não pula 40)

C

LIMIT 20 START 40

Inválida (START não é usado para paginação)

D

LIMIT 20 OFFSET 40

Retorna 20 registros após pular os 40 primeiros

E

FETCH 20 ROWS OFFSET 40

Inválida (ordem correta no PostgreSQL: OFFSET 40 ROWS FETCH NEXT 20 ROWS ONLY)

1LIMIT (quantidade)
20 registros
2OFFSET (pular)
40 primeiros
3Sintaxe válida
LIMIT 20 OFFSET 40
TOP 20 :: 40
TOP 20 LIMIT 40
LIMIT 20 START 40
FETCH 20 ROWS OFFSET 40
Paginação no PostgreSQL
LEVELsoulevel.com.br
Paginação no PostgreSQL: LIMIT (quantidade) (20 registros); OFFSET (pular) (40 primeiros); Sintaxe válida (LIMIT 20 OFFSET 40, TOP 20 :: 40, TOP 20 LIMIT 40, LIMIT 20 START 40, FETCH 20 ROWS OFFSET 40)

Alternativa A — ❌ Incorreta

TOP 20 :: 40 não é sintaxe SQL válida em nenhum SGBD. O TOP é usado no SQL Server e no Sybase, mas a sintaxe é SELECT TOP 20 ... e não há separador ::. Além disso, não há cláusula de deslocamento nessa forma.

Alternativa B — ❌ Incorreta

TOP 20 LIMIT 40 mistura TOP (SQL Server) com LIMIT (PostgreSQL/MySQL). Não é uma combinação válida. A cláusula LIMIT não pode ser usada junto com TOP no mesmo comando. Além disso, LIMIT 40 limitaria a 40 registros, não pulando 40.

Alternativa C — ❌ Incorreta

LIMIT 20 START 40 é inválida no PostgreSQL. Não existe a cláusula START nesse contexto. O correto seria LIMIT 20 OFFSET 40. O termo START é usado em outras situações (como em procedures com START TRANSACTION), mas não para paginação.

Alternativa D — ✅ Correta ⟵ GABARITO

LIMIT 20 OFFSET 40 é a sintaxe padrão do PostgreSQL para limitar o número de linhas e pular registros. Corresponde exatamente ao que foi solicitado: retornar 20 registros após pular os 40 primeiros.

Alternativa E — ❌ Incorreta

FETCH 20 ROWS OFFSET 40 é a sintaxe do padrão SQL:2008 (OFFSET ... FETCH FIRST ... ROWS ONLY). Embora o PostgreSQL também suporte essa sintaxe a partir da versão 8.4, ela é escrita de forma ligeiramente diferente: OFFSET 40 ROWS FETCH NEXT 20 ROWS ONLY. A forma apresentada na alternativa (FETCH 20 ROWS OFFSET 40) não é a correta no PostgreSQL. Além disso, a alternativa inverte a ordem: no padrão, OFFSET vem antes de FETCH. Portanto, está incorreta conforme apresentada.

SE LIGUE NESSA!

O PostgreSQL aceita tanto LIMIT ... OFFSET quanto a sintaxe OFFSET ... FETCH NEXT ... ROWS ONLY. A primeira é mais tradicional e amplamente usada.

Gabarito: letra DLIMIT 20 OFFSET 40.

Link permanente: /questoes/fg133913