JSONB_BUILD_OBJECT
功能描述
Vastbase在PostgreSQL兼容模式下支持JSONB_BUILD_OBJECT函数,用于从一个可变参数列表构造出一个JSONB对象并返回。本函数与JSON_BUILD_OBJECT函数功能类似。
JSONB_BUILD_OBJECT函数接受任意偶数个参数作为数组的元素,两两一组组成键值对,且键不可为null。
注意事项
该功能仅在数据库兼容模式为PostgreSQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='PG')。
函数入参必须为偶数个,其中键不可为NULL。
语法格式
jsonb_build_object(any_value)
参数说明
any_value
是一个可变的参数列表。用户可以传入任意类型的偶数个参数,参数由交替的键和值组成。
示例
示例1: 直接调用JSONB_BUILD_OBJECT函数。
select jsonb_build_object(1,1.3::number,'a',2.78::number,'2022-12-12',3.46::number,'010'::bytea,4.134::number);
select jsonb_build_object(1,array[1,2,3,4],'a',array[1,2,3,4],'2022-12-12',array[1,2,3,4],'010'::bytea,array[1,2,3,4]);
返回结果为如下:
jsonb_build_object
---------------------------------------------------------------
{"1": 1.3, "a": 2.78, "\\x303130": 4.134, "2022-12-12": 3.46}
(1 row)
jsonb_build_object
-----------------------------------------------------------------------------------------------
{"1": [1, 2, 3, 4], "a": [1, 2, 3, 4], "\\x303130": [1, 2, 3, 4], "2022-12-12": [1, 2, 3, 4]}
(1 row)
示例2: 查询表数据时使用JSONB_BUILD_OBJECT函数。
1、创建数据类型。
create type tp2_1161532 as(a int,b text);
2、创建测试表并插入数据。
create table tab_1161532(a1 int[],a3 tp2_1161532,a4 json,a5 jsonb,a6 int);
insert into tab_1161532 values(array[1,2,3],(1,'a'),'2','"早上"',null);
3、查询表数据时使用JSONB_BUILD_OBJECT函数。
select jsonb_build_object(1,a3) from tab_1161532;
select jsonb_build_object(1,a6) from tab_1161532;
返回结果为如下:
jsonb_build_object
---------------------------
{"1": {"a": 1, "b": "a"}}
(1 row)
jsonb_build_object
--------------------
{"1": null}
(1 row)