我对UNNEST(some_array))的排序保证感到有点困惑。我在上读过不同的帖子,所以提到Postgres不能保证输入和输出的顺序是相同的。
例如,在此查询select unnest(array[1, 2, 3]), unnest(array[4, 5, 6]);上,输出为:
orestis=# select unnest(array[1, 2, 3]), unnest(array[4, 5, 6]);
unnest | unnest
--------+--------
1 | 4
2 | 5
3 | 6
(3 rows)这也是一种可能的结果吗?
orestis=# select unnest(array[1, 2, 3]), unnest(array[4, 5, 6]);
unnest | unnest
--------+--------
1 | 5
2 | 4
3 | 6
(3 rows)发布于 2021-04-13 04:08:30
有意思的。documentation解释说:
按存储顺序读出数组的元素。
这意味着两者是一致的。
相反,我会建议:
select *
from unnest(array[1, 2, 3], array[4, 5, 6]);多参数形式对齐值。
https://stackoverflow.com/questions/67064925
复制相似问题