【发布时间】:2020-07-09 11:10:21
【问题描述】:
我正在处理 Oracle 程序,我必须计算两行之间的时间差 时间在光标中显示为列。 为此,我将不得不遍历游标并获取当前行和下一行并计算时间差。 我怎样才能在循环中做到这一点? 如何在不移动光标的情况下获得下一行光标?
【问题讨论】:
我正在处理 Oracle 程序,我必须计算两行之间的时间差 时间在光标中显示为列。 为此,我将不得不遍历游标并获取当前行和下一行并计算时间差。 我怎样才能在循环中做到这一点? 如何在不移动光标的情况下获得下一行光标?
【问题讨论】:
如果游标的列中存在时间,则可以在游标中再添加一列并使用lead 填充下一行时间,如下所示:
-- YOUR CURSOR QUERY EXAMPLE
SELECT COL1, TIME_COL FROM .....
--yOU NEED TO ADD ONE MORE COLUMN
SELECT COL1, TIME_COL, LEAD(TIME_COL) OVER (PARTITION BY ... ORDER BY ...) FROM ...
您可以通过good source 了解更多关于 LEAD 的信息
【讨论】:
使用分析函数 n lag(col) over(order by... ) 或 lead(col) over(order by...) 更容易
【讨论】: