Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — CESPE / CEBRASPE 2025

Banco de DadosPostgreSQL
Código
ce219650
Banca
CESPE / CEBRASPE
Órgão
TRF - 6ª REGIÃO
Ano
2025
Nível
Superior
Cargo
Analista Judiciário – Área: Apoio Especializado – Especialidade: Governança e Gestão de Tecnologia da Informação
Julgue o próximo item, relativo a PostgreSQL e H2 Database.WITH RECURSIVE t(n) AS (SELECT 1UNIONSELECT n*2 FROM t)SELECT n FROM t LIMIT 5;A execução do código precedente, desenvolvido em PostgreSQL 17, apresentará o seguinte resultado.n----124816(5 rows)
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

PostgreSQL: CTE Recursiva (WITH RECURSIVE)

Gabarito: ✅ CERTO. A consulta WITH RECURSIVE t(n) AS (SELECT 1 UNION SELECT n*2 FROM t) SELECT n FROM t LIMIT 5; gera uma sequência exponencial de base 2, começando em 1: 1, 2, 4, 8, 16. O LIMIT 5 exibe exatamente essas cinco linhas, conforme descrito no enunciado. Não há erro na afirmação.

A CTE recursiva no PostgreSQL funciona da seguinte forma:

  • A parte não recursiva (SELECT 1) produz a primeira linha (n=1).

  • A parte recursiva (SELECT n*2 FROM t) referencia a CTE t e, a cada iteração, gera um novo valor multiplicando o anterior por 2.

  • O UNION (sem ALL) elimina duplicatas, mas como cada valor é único, não há diferença prática.

  • O LIMIT 5 interrompe a recursão após a quinta linha, retornando exatamente os valores 1, 2, 4, 8 e 16.

Portanto, a execução do código apresentará o resultado esperado.

  1. 1Parte fixa: SELECT 1
  2. 2Parte recursiva: n*2
  3. 3UNION (sem ALL)
  4. 4LIMIT 5 interrompe
  5. 5Resultado: 1, 2, 4, 8, 16
LEVEL · soulevel.com.br

CERTO.

Link permanente: /questoes/ce219650