PostgreSQL json 您所在的位置:网站首页 json_to_recordset PostgreSQL json

PostgreSQL json

2023-03-12 07:38| 来源: 网络整理| 查看: 265

PostgreSQL json_populate_recordset() 函数将指定的最顶层的 JSON 数组转为一个自定义的 SQL 类型值的集合。

json_populate_recordset() 语法

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

json_populate_recordset(base ANYELEMENT, from_json JSON) -> SETOF ANYELEMENT 参数 base 必需的。 一个任何数据类型的值。 它指明了数组中的 JSON 对象要转为的值的类型。 from_json 必需的。 要转的 JSON 数组,其中的元素为 JSON 对象。 返回值

PostgreSQL json_populate_recordset() 函数返回一个自定义的 SQL 类型值的集合,它由指定的 JSON 数组转化而来。 JSON 数组中的每个 JSON 对象都依照 json_populate_record() 函数处理成自定义类型的值。

我们可以使用 CREATE TYPE 创建一个自定义类型,它定义了要输出的列以及每个列的类型。

json_populate_recordset() 示例

本示例展示了如何使用 PostgreSQL json_populate_recordset() 函数将一个 JSON 数组转为一个自定义 SQL 类型的值。

首先,让我们创建一个自定义的 SQL 类型:

CREATE TYPE my_type as (x TEXT, y INT, z TEXT);

这里,我们创建了一个自定类型 my_type,它包含 3 个列 x, y, 和 z。

然后,让我们使用下面的语句将 JSON 数组转为 my_type 的集合:

SELECT * FROM json_populate_recordset( null::my_type, '[{"x": "A", "y": 1}, {"x": "B", "y": 2}]' ); x | y | z ---+---+--- A | 1 | B | 2 |

这里, 由于列 z 在 JSON 对象没有匹配的字段,因此列 z 中的值为 NULL。如果我们想在列 z 中使用一个固定的值,我们可以使用一个不为 null 的 base 参数:

SELECT * FROM json_populate_recordset( ('x', 0, 'z')::my_type, '[{"x": "A", "y": 1}, {"x": "B", "y": 2}]' ); x | y | z ---+---+--- A | 1 | z B | 2 | z

这里,由于 base 参数不为 null 且列 z 在 JSON 对象没有匹配的字段,因此 base 中的 z 列的值被填充到输出的 z 列中。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有