如何从同一表中的另一条记录中获取值?

我有以下表结构。如何创建视图或创建选择语句添加一列,该列显示来自同一表中相同 notice# 字段的另一条记录的值。

ID   notice#       notice Date         Sequence
1    ABCD1          1/2/2021                   1
2    ABCD1          1/3/2021                   2
3    ABCD1          1/3/2021                   3
4    ABCD2          1/3/2021                   1
5    ABCD2          1/3/2021                   2

预期结果:我想添加一个新列预先通知日期为

ID   notice#        notice Date    Sequence      Prior Noice Date
1    ABCD1          1/2/2021          1           
2    ABCD1          1/3/2021          2           1/2/2021 
3    ABCD1          1/3/2021          3           1/3/2021
4    ABCD2          1/3/2021          1
5    ABCD2          1/3/2021          2           1/3/2021
  • 如果序列 1 则先前通知日期 = null
  • 如果序列 2 则先前通知日期 = 序列 1 的 SO 日期
  • 如果序列 3 则先前通知日期 = 序列 2 的 SO 日期

回答

LAG/LEAD 函数可用于实现此目的。
http://sqlfiddle.com/#!18/df7f2/4

select *, lag([notice date]) over (partition by notice# order by [sequence]) 
from table1
order by notice#, [sequence];


以上是如何从同一表中的另一条记录中获取值?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>