【发布时间】:2017-10-04 19:40:06
【问题描述】:
我正在努力寻找基于先前值更新(不仅仅是选择)SQL 表记录的解决方案。我可以让脚本使用 LAG() 函数填充直接后续记录,但是当我在一行中具有相同的值时(例如下面的“CC”),我无法让它填充下一个不是的值与当前值相同。
能够添加 CASE/WHEN 条件也很有帮助,以便仅评估具有相同 BaseID 的值。任何帮助将不胜感激。
这是我想要的结果:
BaseID Value Date NextValue
1 AA 2017-10-01 BB
1 BB 2017-10-02 CC
1 CC 2017-10-03 DD
1 CC 2017-10-03 DD
1 CC 2017-10-03 DD
1 DD 2017-10-04 NULL
2 EE 2017-10-01 FF
2 FF 2017-10-02 GG
2 GG 2017-10-03 NULL
【问题讨论】:
-
你有什么定义“下一个”。您的示例数据中没有任何内容可用于定义订单。
-
对不起,日期是排序值
-
仍然无法真正对这些进行排序,因为这里有重复的行。但是你可以使用 DENSE_RANK 来做到这一点。给我几个,我会发布一个例子
-
给定日期可以有多个值吗?
标签: sql sql-server lag