注册
将表字段的JSON数组扩展为JSON值的集合
专栏/知行者/ 文章详情 /

将表字段的JSON数组扩展为JSON值的集合

一抹夏忧 2022/04/20 1997 0 0
摘要 json jsonb_array_elements

1、JSON数组为常量
select * from jsonb_array_elements(‘[1, true, null, “str\ttest”, [1,2,3], {“name1”:“aaa\ttest”,“name2”:“bbb\ttest”}]’);
–执行:
SQL> select * from jsonb_array_elements(‘[1, true, null, “str\ttest”, [1,2,3], {“name1”:“aaa\ttest”,“name2”:“bbb\ttest”}]’);
LINEID VALUE


1 1
2 true
3 null
4 “str\ttest”
5 [1,2,3]
6 {“name1”:“aaa\ttest”,“name2”:“bbb\ttest”}

2、将表中某一列的JSON数组,转化为JSON值的集合
create table test (c1 varchar);
insert into test values(‘[1, true, null, “str\ttest”, [1,2,3], {“name1”:“aaa\ttest”,“name2”:“bbb\ttest”}]’);
commit;

–报错:无法解析的成员访问表达式[JSONB_ARRAY_ELEMENTS]
select jsonb_array_elements(c1) from test ;

–正确的写法
select b.* from test,jsonb_array_elements(c1)b

SQL> select b.* from test,jsonb_array_elements(c1)b;

LINEID VALUE


1 1
2 true
3 null
4 “str\ttest”
5 [1,2,3]
6 {“name1”:“aaa\ttest”,“name2”:“bbb\ttest”}

总结:达梦的jsonb_array_elements只能出现在from项中,不能作为查询项。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服