首页 > 解决方案 > 滞后函数跳过以前有空的记录

问题描述

我正在尝试使用 lag 函数获取先前的值,但是它仅适用于在先前记录中填充的数据。我要做的是仅在存在空值时才跳过上一条记录,并在非空值之前查看上一条记录

Select LAG(previous_reference_no)OVER(ORDER BY createdon) FROM TableA

所以说如果我在记录 5,记录 4 为空,但记录 3 不为空。所以从记录 5 我想显示记录 4 的值。

希望这是有道理的,请帮助/

标签: sqlsql-server

解决方案


添加一个PARTITION BY子句?

Select LAG(previous_reference_no) OVER (PARTITION BY CASE WHEN previous_reference_no IS NULL THEN 0 ELSE 1 END
                                        ORDER BY createdon)
FROM TableA

推荐阅读