Questão de Banco de Dados — PostgreSQL — CESPE / CEBRASPE 2025
Banco de Dados›PostgreSQL
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)
CCerto
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.