Skip to content

PostgreSQL unnest() 函数 ​

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

unnest() 语法 ​

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

sql
unnest(array) -> set

或者

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

参数 ​

  • array

    必需的。 数组。

返回值 ​

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

unnest() 示例 ​

一维数组 ​

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

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

多维数组 ​

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

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

展开多个数组 ​

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

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