oracle之获取oracle中的上一次出现和下一次出现
mfryf
阅读:16
2024-11-01 17:39:52
评论:0
您好,我正在研究 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
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。