持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情
生命不息,学习不止
题外话
人类优于其他物种的一个重要方面是人类学会了思考,所以说在人类的进化道路上,思考是举足轻重的,为了防止大家小脑袋瓜锈住,我打算每天出一道题让大家好好的思考一下。
每日一题:三国演义大家都不陌生,里面的诸葛亮更是耳熟能详,但是有一个问题困扰着我,为什么诸葛亮当时参加了周瑜的葬礼,而周瑜却不参加诸葛亮的赠礼呢?是不是说明周瑜小心眼?
废话不多说,上货!
正文
上回拿了一个例子详细的讲解达梦数据库json格式对null的支持,今天就来说说达梦数据库json的相关函数。
json相关函数
1.json_value(列名称,$.jsonkey):这个上两章用过了,应该也都猜到他的作用了,返回json单值且是标量数据类型
2.json_query(列名称,$.jsonkey):这个也使用过了,返回结果是一个或多个JSON数据。多值返回时必须指定with wrapper。单值返回时,标量类型必须指定with wrapper,object或array则不需要指定with wrapper(包装)
3.jsonb_each :将最外层JSON对象扩展为一组键/值对
执行如下:
select * from jsonb_each('{"a":1,"b":true,"c":null,"d":"str\ttest","e":[1,2,3],"f":{"name1":"aaa\ttest","name2":"bbb\ttest"}}');
执行结果
行号 KEY VALUE
---------- --- -----------------------------------------
1 a 1
2 b true
3 c null
4 d "str\ttest"
5 e [1,2,3]
6 f {"name1":"aaa\ttest","name2":"bbb\ttest"}
可以看到最外层的字母层被展开,并转换为key-value的形式
4.jsonb_each_text:跟jsonb_each相同,也是将最外层的json对象转换成键值对形式,只是jsonb_each_text会将字符类型的json值中相应的转译字符转换为对应的键,例如/n,/r等。
下一篇我们继续讲达梦数据库中json相关的函数及其使用。
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!