PostgreSQL jsonb_each() 函数使用指南
PostgreSQL jsonb_each()
函数将一个指定的 JSONB 对象扩展为一个键值对(键是文本类型,值是 JSONB 类型)的集合。
jsonb_each()
语法
这是 PostgreSQL jsonb_each()
函数的语法:
jsonb_each(any_object JSONB) -> SETOF RECORD(key TEXT, value JSONB)
参数
any_object
- 必需的。 一个 JSONB 对象。
返回值
PostgreSQL jsonb_each()
函数返回一个键值对(键是文本类型,值是 JSONB 类型)的集合,其中的两列 key
和 value
,分别对应了 JSONB 对象中的顶层的键值对中的键和值。
jsonb_each()
示例
本示例展示了如何使用 PostgreSQL jsonb_each()
函数将一个 JSONB 对象扩展为一个键值对的集合。
SELECT jsonb_each('{"name": "Tom", "age": 20, "hobbies": ["sports", "cars"]}');
jsonb_each
------------------------------------
(name,"""Tom""")
(age,20)
(hobbies,"[""sports"", ""cars""]")
由于 jsonb_each()
函数返回值为 SETOF
类型,因此您可以在 SELECT * FROM
语句中使用 jsonb_each()
:
SELECT
*
FROM
jsonb_each('{"name": "Tom", "age": 20, "hobbies": ["sports", "cars"]}');
key | value
---------+--------------------
name | "Tom"
age | 20
hobbies | ["sports", "cars"]
这里返回了 2 列 key
和 value
,分别对应了 JSONB 对象中键值对的键和值。
注意,这里的 value
列的类型是 JSONB
。
您可以使用自定义列名,例如:
SELECT
*
FROM
jsonb_each('{"name": "Tom", "age": 20, "hobbies": ["sports", "cars"]}')
AS x(k, v);
k | v
---------+--------------------
name | "Tom"
age | 20
hobbies | ["sports", "cars"]