我有一个包含三个字段的表。我正在使用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时,日期字段包含NULL值。 我试图用两行之间的值填充此DATEFIELD中的NULL值。
例如:
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
谢谢!
答案 0 :(得分:0)
评论中提到的类似
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的行值并将其存储在@d中(并返回)