sql - SQL 查询更新先前传输的重复记录
问题描述
请求某人帮助解决以下关于 sql server 查询的问题。我想根据下表更新备注栏。目前我正在将备注栏更新为“发现重复记录”,但现在我想添加之前传输的起息日。
ID RefNo Value Date Remarks
1 MFX93838 20-05-2020
2 MFX93838 25-05-2020 Record is already transmitted on 20-05-2020
3 MOU93838 22-05-2020
4 MOU93838 23-05-2020 Record is already transmitted on 22-05-2020
解决方案
您可以使用lag()
. 对于一个update
:
with toupdate as (
select t.*, lag(date) over (partition by refno order by date) as prev_date
from t
)
update toupdate
set remarks = concat('Record is already transmitted on ', prev_date)
where prev_date is not null;
您可能想要使用convert()
或format()
将日期转换为特定格式。
推荐阅读
- javascript - Select2 在引导模式下不起作用
- python - 如何创建不是属性/属性的惰性变量?
- sql - 如何根据此 SQL 表计算总输赢
- python - 如何使用numpy将两个相同大小的数组合并为一个元组数组?
- python - 如何将二维列表写入文件
- python - 将数据存储到 SQL 不能使用我的 sql 连接器和 scrapy
- javascript - 如何防止 Electron 中的多个窗口实例?
- highcharts - 有没有办法让一列比其他列宽?
- postgresql - 使用 jdbc 模板从 Spring Boot 调用 postgres 存储过程
- python-3.x - 为什么 append() 不附加交换的列表。它正在附加原始字符串但打印交换列表