FC ConcursosFC Concursos

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:

  1. uma tupla e um erro;
  2. seis tuplas e um erro;
  3. um erro e duas tuplas;
  4. uma tupla e uma tupla;
  5. 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

Continue aprendendo