Date 在oracle中向“选择查询结果日期”添加天数
选择from_date_su_rela,至from RELATION_date_su_rela 但预期从第一行开始,从第二行开始减少-56天,并将最后一行(第三行)的+56天添加到第三行。如下 我写了一个问题 从关系中选择日期与关系-56,到日期与关系+56;但其从所有行中添加和减少天数如下所示Date 在oracle中向“选择查询结果日期”添加天数,date,oracle12c,Date,Oracle12c,选择from_date_su_rela,至from RELATION_date_su_rela 但预期从第一行开始,从第二行开始减少-56天,并将最后一行(第三行)的+56天添加到第三行。如下 我写了一个问题 从关系中选择日期与关系-56,到日期与关系+56;但其从所有行中添加和减少天数如下所示 如何使其与上面的第二幅图像一样工作。一个选项是使用行数分析函数对数据进行升序和降序排序,以找到第一行和最后一行,然后在case语句中执行加减运算 select case when rn_asc =
如何使其与上面的第二幅图像一样工作。一个选项是使用
行数
分析函数对数据进行升序和降序排序,以找到第一行和最后一行,然后在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
)
您如何知道要从第一行减去,然后添加到第三行?总是正好有三排吗?如果有更多行或更少行,您将添加到哪一行?第三个?最后?还有别的吗?你如何定义“第一”和“第三”?您是按日期开始的
订购的吗?截止日期的?或者其他栏目?是的,按起始日期排序。行始终是第一行和最后一行。每次不是三排,可能是一排,也可能是多排。因此,您希望从第一行减去,然后添加到最后一行。不一定是第三排。如果只有一行,我假设你想在那一行上加减?是否可能有两行具有相同的起始日期
?如果是,如何处理关系?起始日期是主键。因此,没有两行具有相同的起始日期。如果要显示相同表关系的其他列,如abc、xyz等。。我可以在其中添加这些列。@165700-您可以将它们添加到内联视图和外部选择中。