如何编写SQL查询,如果当前月份的值为null,则会填充上个月的值,感谢您的帮助
答案 0 :(得分:0)
您应该注意您正在使用哪种类型的SQL,并提供一些示例数据来帮助人们帮助您...
在Oracle中,您可以在 case 语句中使用 LAG 功能,如下所示:
如果数据如下所示:
MONTH | Value
___________________
JAN2016 | 100.00
FEB2016 |
MAR2016 | 342.60
APR2016 | 450.20
代码:
SELECT
MONTH,
CASE WHEN Value is null then LAG(Value OVER MONTH,1) else Value END as Value
FROM
myTable;
结果将是:
MONTH | Value
________________________
JAN2016 | 100.00
FEB2016 | 100.00
MAR2016 | 342.60
APR2016 | 450.20
只要您没有两个或更多连续月份的空值,此解决方案就可以正常工作......如果发生这种情况,那么您的解决方案将会更复杂一些。