我有一张桌子tblpushproducts
:
identifier createddate creator
1 15-7-2018 Utrecht (Utr)
1 1-12-2018 Utrecht (Utr)
1 14-2-2019 Utrecht (Utr)
2 12-12-2018 Utrecht (Utr)
2 12-02-2019 Utrecht (Utr)
我想将列creator
中的值从Utrecht (Utr)
更新为Utrecht
。
但是,您可以看到,同一标识符有多个行。
我只想更新具有最新日期的行。
因此,例如,在这种情况下,仅应更新以下行:
1 14-2-2019 Utrecht (Utr)
2 12-02-2019 Utrecht (Utr)
答案 0 :(得分:0)
尝试一下:
UPDATE tblpushproducts P SET P.creator = NewValue WHERE P.identifier = IDValueHere AND createddate = (SELECT MAX(T1.createddate) FROM tblpushproducts T1 WHERE T1.identifier = IDValueHere);
答案 1 :(得分:0)
您可以使用窗口功能ROW_NUMBER()
查找最新行:
with
x as (
select
id,
row_number() over(order by createddate desc) as rn from tblpushproducts
)
update tblpushproducts
set creator = 'Donald Duck'
where id = (select id from x where rn = 1)