PostgreSQL jsonb_to_recordset() 函数使用指南

PostgreSQL jsonb_to_recordset() 函数将指定的最顶层的 JSONB 数组(元素为对象)扩展为一个在 AS 子句中定义的具有符合类型的行的集合。

jsonb_to_recordset() 语法

这是 PostgreSQL jsonb_to_recordset() 函数的语法:

jsonb_to_recordset(from_json JSONB) -> SETOF RECORD

参数

from_json
必需的。 要转的 JSONB 数组,其中的元素为 JSONB 对象。

返回值

PostgreSQL jsonb_to_recordset() 函数返回一个在 AS 子句中定义的 RECORD 类型值的集合,它由指定的 JSONB 数组转换而来。 数组中的 JSONB 对象都依照 jsonb_to_record() 函数被转成 RECORD 类型的值。

jsonb_to_recordset() 示例

本示例展示了如何使用 PostgreSQL jsonb_to_recordset() 函数将一个 JSONB 数组转为一个自定义类型的集合。

SELECT
  *
FROM
  jsonb_to_recordset(
    '[{"x": "A", "y": 1}, {"x": "B", "y": 2}]'
  ) AS x(x TEXT, y INT);
 x | y
---+---
 A | 1
 B | 2

这里,我们在 AS 子句中定义了要返回的行类型: AS x(x TEXT, y INT)。它包含两个列 xy,他们分别匹配了 JSONB 对象中的键。