1

我有两个数组。两个数组都是从函数计算的,因此两个数组都是动态的,但两个数组的长度将相同。

a1= ARRAY[1,2,3];
a2= ARRAY[10,20,30];

现在我想像这样更新我的表

UPDATE TABLE SET data= CASE 
     data=a1[1] then a2[1]
     data=a1[2] then a2[2]
     data=a1[3] then a2[3]END
where id=1;

我尝试在 CASE 中添加循环,但它不起作用。

4

1 回答 1

1

您可以使用 array_position在数组 1 中查找匹配的索引,并使用此索引查询数组 2:

UPDATE TABLE 
SET data = a2[array_position(a1, data)]
WHERE id = 1;

http://rextester.com/CBJ37276

于 2018-05-30T12:33:17.990 回答