mysql之间的值填充大小写日期

k3bvogb1  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(328)

我有一个包含三个字段的表。我使用的是mysql workbench 6.3,我只有对数据库的读取权限。

ID    REVENUE    DATEFIELD
-1    100        2018-01-05
 1    200        2018-02-03
 3      0        NULL
 6    700        2018-03-05
 9    400        2018-06-30
10      0        NULL
11      0        NULL
12      0        NULL

当收入为0时,日期字段包含空值。我试图用两行之间的值填充这个日期字段中的空值。
例如:

ID REVENUE         DATEFIELD
-1     100        2018-01-05
 1     200        2018-02-03
 3       0        2018-02-05
 6     700        2018-03-05
 9     400        2018-06-30
10       0        2018-06-30
11       0        2018-06-30
12       0        2018-06-30

谢谢您!

niknxzdl

niknxzdl1#

就像评论中提到的那样

SELECT 
  ID, 
  REVENUE, 
  CASE WHEN DATEFIELD IS NULL 
    THEN @d := @d + INTERVAL 1 DAY 
    ELSE @d := DATEFIELD 
  END as DATEFIELD
FROM yourtable t, (SELECT @d := CURRENT_DATE - INTERVAL 999 DAY) r
ORDER BY ID

@d在999天前被初始化。如果datefield列为null,则取@d的最后一个值并向其添加一天(并返回它),否则取datevalue的行值并存储它in@d (并退回)

相关问题