在PostgreSQL命令行psql里格式化输出json字段
发布时间:2020-12-13 17:11:46 所属栏目:百科 来源:网络整理
导读:在pgsql的psql命令里直接select输出json字段是一长串字符,这对阅读非常不友好,查了好久也没查到pgsql有格式化输出json字段的函数,只好折腾一番。 表结构如下: pgsql=#dtest资料表"pgsql.test"栏位|型别|修饰词------+---------+--------id|integer|非空
在pgsql的psql命令里直接select输出json字段是一长串字符,这对阅读非常不友好,查了好久也没查到pgsql有格式化输出json字段的函数,只好折腾一番。 表结构如下: pgsql=#dtest 资料表"pgsql.test" 栏位|型别|修饰词 ------+---------+-------- id|integer|非空 info|jsonb|非空 索引: "test_pkey"PRIMARYKEY,btree(id) "test_info_idx"gin(info) SELECT的格式化输出: pgsql=#selectid,replace( replace( regexp_replace(info::text,',"',concat(',chr(10),chr(9),'"'),'g'),'{',concat('{',chr(9))),'}',concat(chr(10),'}'))asinfofromtest; id|info ----+--------------------------------------------------------------- 1|{+ |"a":[1,2,3],+ |"b":[4,5,6]+ |} 2|{+ |"a":[7,8,9],+ |"b":[10,11,12]+ |} 3|{+ |"guid":"9c36adc1-7fb5-4d5b-83b4-90356a46061a",+ |"name":"AngelaBarton",+ |"tags":["enim",+ |"aliquip",+ |"qui"],+ |"address":"178HowardPlace,Gulf,Washington,702",+ |"company":"Magnafone",+ |"latitude":19.793713,+ |"is_active":true,+ |"longitude":86.513373,+ |"registered":"2009-11-07T08:53:22+08:00"+ |} (3行记录 为了方便今后每次调用,写成函数: createfunctionformat_json(text)returnstextas$$ selectreplace(replace(regexp_replace($1,'}'))asjson_s; $$languagesql; 这样看起来就简洁直观多了: pgsql=#selectid,format_json(info::text)asinfofromtestwhereid=3; id|info ----+--------------------------------------------------------------- 3|{+ |"guid":"9c36adc1-7fb5-4d5b-83b4-90356a46061a",+ |"registered":"2009-11-07T08:53:22+08:00"+ |} (1行记录) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – ListView中的内联脚本条件语句
- ruby-on-rails – 使用acts_as_taggable_on,我如何拥有最大
- FPGA学习(第2节)-FPGA下载程序到flash+文件转换-通过.sof
- c# – 如果在帖子后模型中的值发生更改,则表单仍会显示旧值
- c# – 我要“(int)null”返回我0
- postgresql – postgres COALESCE懒惰吗?
- ruby-on-rails – respond_to do | format | format.js无法
- felx自动获取焦点
- ruby – 我看到宝石在“宝石列表”,但有“没有这样的文件加
- MDX函数使用介绍(三):聚合函数