【问题标题】:Select all the years from a range without having a years table从没有年份表的范围中选择所有年份
【发布时间】:2020-08-07 08:46:35
【问题描述】:

我用

选择了当前年份
SELECT EXTRACT(YEAR FROM NOW()) as value

我想打印从 1990 年到当前年份的所有年份的列表,而不必创建年份列表的表格,有没有办法做到这一点,或者我必须创建一个表格来做到这一点?

【问题讨论】:

    标签: sql postgresql date select recursive-query


    【解决方案1】:

    您可以为此使用递归查询:

    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
    

    【讨论】:

      【解决方案2】:
      select generate_series(1990, (extract(year from now()))::int) as value;
      

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

      【讨论】:

        猜你喜欢
        • 2021-02-03
        • 1970-01-01
        • 1970-01-01
        • 2015-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-07
        相关资源
        最近更新 更多