gpt4 book ai didi

oracle - 获取oracle中的上一次出现和下一次出现

转载 作者:行者123 更新时间:2023-12-01 11:42:30 25 4
gpt4 key购买 nike

您好,我正在研究 oracle DB。数据库具有一列日期。它由 5 年的日期组成,日期模型将被刷新。前任

DATE_TABLE

DATE
------------
1-jan-2013
15-jan-2013
31-jan-2013
6-feb-2013
etc.........

现在为今天的日期假设 13th jan 2013 .下一次刷新日期为 15th jan .之前的刷新日期是 1st jan .检索这两个日期。我可以有任何不使用 PL/SQL 的方法吗?使用常规选择查询?。提前致谢

最佳答案

有两个功能LAG() (允许您引用以前的记录)和 LEAD()允许您引用下一条记录。下面是一个例子:

SQL> with t1(col) as(
2 select '1-jan-2013' from dual union all
3 select '15-jan-2013' from dual union all
4 select '31-jan-2013' from dual union all
5 select '6-feb-2013' from dual
6 )
7 select col as current_value
8 , lag(col, 1) over(order by col) as prev_value
9 , lead(col, 1) over(order by col)as next_value
10 from t1
11 ;

结果:
CURRENT_VALUE   PREV_VALUE    NEXT_VALUE
------------- ----------- -----------
1-jan-2013 NULL 15-jan-2013
15-jan-2013 1-jan-2013 31-jan-2013
31-jan-2013 15-jan-2013 6-feb-2013
6-feb-2013 31-jan-2013 NULL

关于oracle - 获取oracle中的上一次出现和下一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18225832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com