【发布时间】:2021-10-06 01:20:00
【问题描述】:
我想用以前的值填充 Date 列中的空值,即 12-01-2016,因为我可以给出明确的偏移值,但如果 1 有超过 2 个空值,那该怎么做呢?
select id,coalesce(date,lag(date,1)over(partition by id order by fromdt),
lag(date,2)over(partition by id order by fromdt)
from abc
当前数据
ID 日期 FROMDT TODT 1 12-01-2015 15-01-2015 20-01-2015 2 2016 年 12 月 1 日 2016 年 1 月 1 日 2016 年 2 月 20 日 3 空 21-02-2016 22-02-2016 4 空 23-02-2016 24-02-2016预期数据
ID 日期 FROMDT TODT 1 12-01-2015 15-01-2015 20-01-2015 2 2016 年 12 月 1 日 2016 年 1 月 1 日 2016 年 2 月 20 日 3 2016 年 12 月 1 日 2016 年 2 月 21 日 2016 年 2 月 22 日 4 12-01-2016 23-02-2016 24-02-2016【问题讨论】:
-
lag值不会传播。您必须将数据加入或应用到自身,才能找到与值匹配的第一条记录。 -
谢谢..我们有没有其他方法可以用案例或其他东西来完成它..
标签: sql sql-server function lag