1

我有一个表,其属性是数组的数组。

例子:a={{1,A, 1},{A,B,C},{45,46,47}}

我想将一个数组添加到数组“a”中。

示例:new_array={Z,T}到“a”以便拥有a={{Z,T},{1,A, 1},{A,B,C},{45,46,47}}`

我使用了命令:update test set a = ARRAY['Z','T'] || a;

但我收到了这个错误:没有运算符与给定的名称和参数类型匹配。您可能需要添加显式类型转换。

于是,我尝试::text[]用这种方式添加参数: update test set a = ARRAY['Z','T']::text[] || a::text[]; 但是还是报错:

ERROR:  cannot concatenate incompatible arrays
DETAIL:  Arrays with differing dimensions are not compatible for concatenation.

因此,我的问题是:如何将数组添加到数组数组中?.

4

1 回答 1

2

要使它们具有相同的尺寸,请添加一个空值:

select '{{1,A, 1},{A,B,C},{45,46,47}}'::text[] || '{Z, T, null}';
                ?column?                 
-----------------------------------------
 {{1,A,1},{A,B,C},{45,46,47},{Z,T,NULL}}
于 2013-08-04T14:39:00.610 回答