我的表模式看起来是这样的:
create table table_with_arrays
(
dim_col_code_array integer[] -- contains foreign keys to dict_table.array_code
dim_col_val_array varchar[] -- needs to be populated with dict_table.array_value
);
create table dict_table(
array_code integer,
array_value varchar
)
字符串
有一个字段dim_col_code_array
,其值为[10,300,400]
。这些整数是dict_table.array_code
的外键。
对于table_with_arrays
的每一行,我需要通过dim_col_code_array = integer.array_code
的每个元素将dim_col_code_array的每个值与表dict_table
连接,然后将连接的array_value以相同的顺序存储到table_with_arrays.dim_col_val_array
范例:
table_with_arrays contains record:
[1,2,3], [/** fill me with values*/]
dict_table contains records
1 FIRST
2 SECOND
3 THIRD
query should update record of table_with_arrays to
[1,2,3], [FIRST, SECOND, THIRD]
型
有什么“聪明”的想法/见解我可以尝试吗?
2条答案
按热度按时间wydwbb8l1#
连接可以使用操作符
ANY
来完成:字符串
更新可以是:
型
Demo here
doinxwow2#
解嵌套数组
WITH ORDINALITY
以记住数组元素的原始顺序。然后连接到查找表并将有序结果提供给ARRAY构造函数。
可以在相关子查询中完成:
字符串
fiddle的
参见: