如果当前月份为空,则复制上个月的数据

时间:2016-02-10 21:18:23

标签: sql

如何编写SQL查询,如果当前月份的值为null,则会填充上个月的值,感谢您的帮助

1 个答案:

答案 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

只要您没有两个或更多连续月份的空值,此解决方案就可以正常工作......如果发生这种情况,那么您的解决方案将会更复杂一些。