Questão FC369469
A analista Letícia realizou a seguinte consulta em Structured Query Language (SQL): WITH RECURSIVE anos (n) AS ( SELECT 2020 UNION ALL SELECT n + 1 FROM anos WHERE n < 2025 ) SELEC
Linguagem SQL
FGV · 2024
A analista Letícia realizou a seguinte consulta em Structured Query Language (SQL):
WITH RECURSIVE anos (n) AS
(
SELECT 2020 UNION ALL
SELECT n + 1 FROM anos WHERE n < 2025
)
SELECT * FROM anos
Logo após, Letícia realizou outra consulta em SQL:
SELECT 2024 FROM anos
O sistema gerenciador de banco de dados usado por Letícia suporta o recurso Common Table Expression do SQL.
As consultas efetuadas por Letícia retornaram, respectivamente:
- uma tupla e um erro;
- seis tuplas e um erro;
- um erro e duas tuplas;
- uma tupla e uma tupla;
- seis tuplas e duas tuplas.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A consulta com WITH RECURSIVE define a CTE chamada anos que gera a sequência \(2020,2021,\dots,2025\) começando em 2020 e incrementando enquanto \(n<2025\). Assim, o SELECT * FROM anos retorna exatamente seis tuplas — os valores de 2020 a 2025 (ou seja, \(6\) linhas).
Já a segunda instrução, SELECT 2024 FROM anos, provoca erro porque a CTE anos vive apenas no escopo da declaração em que foi definida. Uma CTE não cria uma tabela permanente; fora do WITH ela não existe, portanto o SGDB informa que a relação/tabela anos não foi encontrada.
Conteúdo do catálogo FC Concursos · Atualizado em