Выберите все годы из диапазона, не имея таблицы лет - PullRequest
3 голосов
/ 24 апреля 2020

Я выбрал текущий год с

SELECT EXTRACT(YEAR FROM NOW()) as value

Я хочу напечатать список всех лет с 1990 по текущий год без необходимости создавать таблицу из списка лет, есть ли способ сделать это, или я должен создать таблицу, чтобы сделать это?

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Вы можете использовать рекурсивный запрос для этого:

with recursive cte as (
    select 1990 dt
    union all select dt + 1 from cte where dt < extract(year from now())
)
select dt from cte order by dt
0 голосов
/ 24 апреля 2020
select generate_series(1990, (extract(year from now()))::int) as value;

или

select value from generate_series(1990, (extract(year from now()))::int) as value;
...