如何使LAG()在SQL Server中忽略NULL?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使LAG()在SQL Server中忽略NULL?相关的知识,希望对你有一定的参考价值。
有人知道如何用字符串替换列中的空值,直到命中新的字符串,然后该字符串替换其下的所有空值?我有一栏看起来像这样]
原始列:
PAST_DUE_COL 91 or more days pastdue Null Null 61-90 days past due Null Null 31-60 days past due Null 0-30 days past due Null Null Null
预期结果列:
PAST_DUE_COL 91 or more days past due 91 or more days past due 91 or more days past due 61-90 days past due 61-90 days past due 61-90 days past due 31-60 days past due 31-60 days past due 0-30 days past due 0-30 days past due 0-30 days past due 0-30 days past due
基本上,我希望列中的第一个字符串替换它下面的所有空值,直到下一个字符串。然后,该字符串将替换其下的所有null,直到下一个字符串,依此类推。
有人知道如何用字符串替换列中的空值,直到命中新的字符串,然后该字符串替换其下的所有空值?我有一列看起来像这样的原始列:...
答案
SQL Server不支持ignore nulls
和lead()
之类的窗口函数的lag()
选项,对此问题很合适。
另一答案
这是GMB回答的一种变体。只是简单一点:
另一答案
如果您有一个ID列,但前导/滞后不可用,则可以使用:
以上是关于如何使LAG()在SQL Server中忽略NULL?的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL Server 中使用上一行和下一行值 (LAG & LEAD) 计算总结束数量
SQL Server 2012 - 使用 LAG 从以前的行中获取数据
在sqlserver 2008 怎么配置才可以正常支持lead和lag分析函数
在 SQL Server Always ON 配置中 - 将事务日志备份到 Nul 会中断 Always On 配置吗?