PostgreSQL unnest() 函数使用指南

PostgreSQL unnest() 函数将指定的数组展开为一个行的集合。

unnest() 语法

这里是 PostgreSQL unnest() 函数的语法:

unnest(array) -> set

或者

unnest(array, array[, array ...]) -> set, set [, set ...]

参数

array
必需的。 数组。

返回值

PostgreSQL unnest() 函数返回一个集合,数组中的每个元素成为集合中的一行。

unnest() 示例

一维数组

本示例展示了如何使用 PostgreSQL unnest() 函数将一维数组展开为一个集合。

SELECT unnest(ARRAY[0, 1, 2]);
 unnest
--------
      0
      1
      2

多维数组

本示例展示了如何使用 PostgreSQL unnest() 函数将二维数组展开为一个集合。

SELECT unnest('[2:4][2:3]={{1,2},{3,4},{5,6}}'::integer[]);
 unnest
--------
      1
      2
      3
      4
      5
      6

展开多个数组

SELECT * FROM
  unnest(
    ARRAY[1, 2, 3, 4], 
    ARRAY['a', 'b', 'c'],
    ARRAY['A', 'B', 'C', 'D']
  ) AS x(x,y,z);
 x | y | z 
---+---+---
 1 | a | A
 2 | b | B
 3 | c | C
 4 |   | D

这里, unnest() 函数展开多个数组,相当于单独将每个数组展开成集合,再将多个集合按行连接起来。