首页 >数据库 >mysql教程 >PostgreSQL 中如何将两个长度相等的数组合并为二维数组?

PostgreSQL 中如何将两个长度相等的数组合并为二维数组?

Susan Sarandon
Susan Sarandon原创
2025-01-04 19:29:41816浏览

How Can I Merge Two Arrays of Equal Length into a Two-Dimensional Array in PostgreSQL?

在 PostgreSQL 中将数组与类似 Zip 的功能结合起来

问题:PostgreSQL 中是否有一个专门的函数可以将两个长度相等的数组合并为一个二维的数组?

答案:

Postgres 9.5 及更高版本

引入 array_agg(数组表达式),这是一个强大的工具,可将所有输入数组合并为一个高一维的数组。此函数有效地取代了对 array_agg_mult() 等自定义聚合函数的需求。

Postgres 9.4

利用 ROWS FROM 或增强的 unnest() 函数同时取消嵌套多个数组。生成的数组大小将与最大的输入数组匹配,较小的数组用空值填充。

Postgres 9.3 及更早版本

一维数组的简单 Zip():

利用 unnest() 函数创建一个简单的 zip() 功能,该功能可以并行取消两个数组的嵌套。只要数组具有相同数量的元素,这种方法就有效。

多维数组的 Zip():

将未嵌套的数组组合成二维数组需要自定义聚合函数,如 array_agg_mult()。该函数将各个数组聚合成一个多维数组。要将此函数用于 zip() 功能,请将其包装在单独的函数中,

以上是PostgreSQL 中如何将两个长度相等的数组合并为二维数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn