我有两个阵列。两个数组都是根据函数计算的,因此两个数组都是动态的,但两个数组的长度都是相同的。
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中添加循环,但它无效。
答案 0 :(得分:1)
您可以使用array_position
在数组1中查找匹配的索引,并使用此索引查询数组2:
UPDATE TABLE
SET data = a2[array_position(a1, data)]
WHERE id = 1;