拆分单个JSON数组列并使用该数据更新多个整数列



我有一个JSON数组列的表,其中包含一天中每小时的整数,例如:

[0, 10, 15, 20, 25, 30, 44, 62, 47, 20, 6, 10, 26, 42, 39, 21, 6, 0, 0, 0, 0, 0, 0, 0]

在同一个表中,我添加了24个新的整数列,命名为i0到i23,所以我可以更容易地过滤每个单独的列,而不需要复杂的JSON查询。

使用哪个SQL查询我可以用JSON数组的值更新24列,就像下面的例子一样?我需要将JSON数组拆分为24个值,同时更新同一表中的每一行。

i0=0, i1=10, i2=15, ..... i23=0

我尝试了这样的东西,但然后我得到一个错误'查询1错误:错误:不能将json类型转换为整数'

UPDATE table
set 
i0=CAST (jsoncol::json->0 AS INTEGER),
i1=CAST (jsoncol::json->1 AS INTEGER)

我使用下面的查询修复了它。有更好的方法吗?


UPDATE table
set 
i0=(jsoncol::json->0)::TEXT::INT,
i1=(jsoncol::json->1)::TEXT::INT,
i2=(jsoncol::json->2)::TEXT::INT,
i3=(jsoncol::json->3)::TEXT::INT,
i4=(jsoncol::json->4)::TEXT::INT,
....
etc

最新更新