问题描述
我有一个查询,该查询返回行号和“零售”值。我的结果集有时不包含“零售”值的值。另外,在我拥有此特定项目的“零售”值之前,可能是几行。我正在尝试创建一个查询,该查询将从包含“零售”值的第一行(可能是行号)中返回“零售”值。
在下面的第46行示例中,我想从第45行提取值。但是,在第53行和第54行中,我想从第52行提取值。
建议?
解决方法
您可以使用窗口功能。不幸的是,SQL Server不支持ignore nulls
的{{1}}选项(很少有数据库...),但是我们可以使用一些空白和孤岛的方法来解决此问题。
这个想法是用窗口总和来构建相邻行(岛)的组,窗口总和对于每个非lag()
零售值都递增。然后,我们可以使用该信息带来“缺失”值。
null