在 oracle 中向 select 查询结果日期添加天数

Adding days to the select query result dates in oracle

select from_date_su_rela,to_date_su_rela 来自 RELATION_T;

但预期是从第一行开始减少 -56 天 from_date_su_rela,并将 +56 天添加到最后(第 3 行)to_date_su_rela。如下

我将查询写为,

select from_date_su_rela-56,to_date_su_rela+56 来自 RELATION_T;但是它从所有行中添加和减少天数,如下所示,

如何使它如上图 2 那样工作。

一个选择是使用 row_number 分析函数对数据进行升序和降序排序以找到第一行和最后一行,然后在 case 语句中执行加法和减法

select case when rn_asc = 1
            then from_date_su_rela - 56
            else from_date_su_rela
         end from_date_su_rela,
       case when rn_desc = 1
            then to_date_su_rela + 56
            else to_date_su_rela
         end to_date_su_rela
  from (
      select from_date_su_rela,
             to_date_su_rela,
             row_number() over (order by from_date_su_rela desc) rn_desc,
             row_number() over (order by from_date_su_rela asc) rn_asc
        from relation_t
  )