SQLite填充空值

SQLite填充空值,sql,sqlite,Sql,Sqlite,所以我有一些空值的表,我希望用最后一个有效值填充它们。我可以选择一个包含更正列的新表,但我不确定如何更新数据库中的值,有人能帮我更新语句吗 select b.timeStamp, b.var_5, (select a.var_5 from wme_test as a where a.timeStamp<=b.timeStamp and a.var_5 <> 'NULL' order by timestamp desc limit 1 ) as

所以我有一些空值的表,我希望用最后一个有效值填充它们。我可以选择一个包含更正列的新表,但我不确定如何更新数据库中的值,有人能帮我更新语句吗

select b.timeStamp, 
       b.var_5, 
     (select a.var_5  from wme_test as a where a.timeStamp<=b.timeStamp  and a.var_5 <> 'NULL' order by timestamp desc limit 1 )  as correctedVar5 
from wme_test as b
此查询的输出如下


您可以使用相关更新来执行此操作

update wme_test 
set var5 = (select var5 
            from wme_test 
            where tm >= wme_test.tm and var5 is not null 
            order by tm limit 1)
where var5 is null

请注意,表中最早的时间戳不能用此更新。如果以前为空,它仍然为空。

。。。或者你可以写一个很短的程序,或者存储过程,这可能是我个人会选择做的,如果只是因为我可以更容易地看到计算机真正要做什么,以及为什么。不,我不反对你的回答:事实上,我投了赞成票。对于这个特定的应用程序,我相信运行这个查询效果最好,非常感谢,我一开始确实尝试过类似的方法,但不确定当两个表都是同一个表时,如何转到外部表而不是子查询表的内部含义。最后,我只需添加降序并设置变量名,查询结果如下:update wme_test set var_13=select var_13 from wme_test as b where timeStamp