Sql 对UNNEST的订购保证
我对Sql 对UNNEST的订购保证,sql,postgresql,Sql,Postgresql,我对UNNEST(some_array))的排序保证有点困惑。我读过不同的文章,其中提到Postgres不能保证输入和输出的顺序是相同的 例如,在这个查询上选择unest(数组[1,2,3]),unest(数组[4,5,6])输出为: orestis=# select unnest(array[1, 2, 3]), unnest(array[4, 5, 6]); unnest | unnest --------+-------- 1 | 4 2 |
UNNEST(some_array))
的排序保证有点困惑。我读过不同的文章,其中提到Postgres不能保证输入和输出的顺序是相同的
例如,在这个查询上选择unest(数组[1,2,3]),unest(数组[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)
有趣。报告解释说:
阵列的元素按存储顺序读取
这意味着两者是一致的
相反,我建议:
select *
from unnest(array[1, 2, 3], array[4, 5, 6]);
多参数表单将值对齐