当数组长度为非静态时,数组到PostgreSQL中的列

时间:2019-03-21 10:58:31

标签: sql arrays postgresql

我需要类似于unnest()的东西,但是要取消嵌套到列而不是行。

我有一个包含id列和array列的表。我如何取消嵌套到列的数组?具有相同ID的数组始终具有相同的数组长度。

编辑:我正在寻找可与任何长度的数组一起使用的查询

SELECT ???? FROM table WHERE id=1;

id | array                array1 | array2 | ... | arrayn
---+----------            -------+--------+-----+-------
 1 | {1, 2, ..., 3}    ->   1    |   2    | ... |   3
 1 | {4, 5, ..., 6}         4    |   5    | ... |   6
 2 | {7, 8, ..., 9}

有人知道吗?

1 个答案:

答案 0 :(得分:1)

这不是逻辑吗?

select array[1] as array1, array[2] as array2
from t
where id = 1;

SQL查询返回一组固定的列。您不能有一个常规查询有时返回两列,有时返回一或三。实际上,这就是使用数组的原因之一-它使您可以灵活地拥有可变数量的值。