【发布时间】:2020-08-07 08:46:35
【问题描述】:
我用
选择了当前年份SELECT EXTRACT(YEAR FROM NOW()) as value
我想打印从 1990 年到当前年份的所有年份的列表,而不必创建年份列表的表格,有没有办法做到这一点,或者我必须创建一个表格来做到这一点?
【问题讨论】:
标签: sql postgresql date select recursive-query
我用
选择了当前年份SELECT EXTRACT(YEAR FROM NOW()) as value
我想打印从 1990 年到当前年份的所有年份的列表,而不必创建年份列表的表格,有没有办法做到这一点,或者我必须创建一个表格来做到这一点?
【问题讨论】:
标签: sql postgresql date select recursive-query
您可以为此使用递归查询:
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
【讨论】:
select generate_series(1990, (extract(year from now()))::int) as value;
或
select value from generate_series(1990, (extract(year from now()))::int) as value;
【讨论】: