Select 范围内的所有年份,没有年份 table
Select all the years from a range without having a years table
我选择了当前年份
SELECT EXTRACT(YEAR FROM NOW()) as value
我想打印从 1990 年到当年的所有年份的列表,而不必创建年份列表的 table,有没有办法做到这一点,或者我必须创建一个 table 做这个?
您可以为此使用递归查询:
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;
我选择了当前年份
SELECT EXTRACT(YEAR FROM NOW()) as value
我想打印从 1990 年到当年的所有年份的列表,而不必创建年份列表的 table,有没有办法做到这一点,或者我必须创建一个 table 做这个?
您可以为此使用递归查询:
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;