【发布时间】:2023-03-10 06:34:02
【问题描述】:
我找到了一些关于使用 over order by 进行更新的方法的答案,但没有任何方法可以解决我的问题。在 SQL Server 2014 中,我有一列 DATES(间隔不一致到毫秒)和一列 PRICE,因此我想用 50 行的 PRICE 值更新 OFFSETPRICE 列(按 DATES 排序) .我发现的解决方案在查询或子查询中都有超序,但我认为我需要它。或者也许我让它变得比现在更复杂。
在这个简化的例子中,如果偏移量是 3 行,那么我需要转这个:
DATES, PRICE, OFFSETPRICE
2018-01-01, 5.01, null
2018-01-03, 8.52, null
2018-02-15, 3.17, null
2018-02-24, 4.67, null
2018-03-18, 2.54, null
2018-04-09, 7.37, null
进入这个:
DATES, PRICE, OFFSETPRICE
2018-01-01, 5.01, 3.17
2018-01-03, 8.52, 4.67
2018-02-15, 3.17, 2.54
2018-02-24, 4.67, 7.37
2018-03-18, 2.54, null
2018-04-09, 7.37, null
This post 很有帮助,到目前为止,我有这段代码可以正常工作:
select dates, price, row_number() over (order by dates asc) as row_num
from pricetable;
我还没有弄清楚如何将更新值指向未来的有序行。提前感谢您的帮助。
【问题讨论】:
-
请发布您的数据样本和您迄今为止尝试过的查询。
标签: sql-server