【发布时间】:2017-11-15 18:27:22
【问题描述】:
我不知道如何在 postgres 中更改多维数组。假设有以下代码:
do
$$
declare
a double precision[][];
x integer;
y integer;
begin
for x in 1..3 loop
for y in 1..3 loop
a[x y]:= x * y;
raise notice 'x: %, y: %, value: %, should be: %',x, y, a[x:y], x*y;
end loop;
end loop;
end
$$
language plpgsql;
结果如下:
x: 1, y: 1, value: {1}, should be: 1
x: 1, y: 2, value: {2}, should be: 2
x: 1, y: 3, value: {3}, should be: 3
x: 2, y: 1, value: {}, should be: 2
x: 2, y: 2, value: {4}, should be: 4
x: 2, y: 3, value: {6}, should be: 6
x: 3, y: 1, value: {}, should be: 3
x: 3, y: 2, value: {}, should be: 6
x: 3, y: 3, value: {9}, should be: 9
如您所见,存在一些问题。例如x=2 和y=1 的组合结果为{}。
通常我会认为我可以通过
a[x][y]:= value;
但这会产生错误。
【问题讨论】:
标签: sql arrays postgresql multidimensional-array plpgsql