VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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)