SQL根据条件查询先前的值

时间:2018-07-05 19:40:47

标签: sql sql-server

我在表格中有以下几列

DATE_TIME , MESSAGE , VALUE , SOURCE , LOT_NAME 

值与SOURCE,LOT_NAME和MESSAGE相关联。

我想返回以下列的数据

DATE_TIME , MESSAGE , NEW_VALUE ,OLD_VALUE , SOURCE , LOT_NAME 

其中新值是当前行值,而旧值是具有相同消息来源,但前一个批次值相同的消息的值。

我该如何实现?请帮忙。

不适用

1 个答案:

答案 0 :(得分:0)

您正在寻找lag()

select t.*,
       lag(value) over (partition by source, lot_name, message order by date_time) as prev_value
from t;