当前位置: 首页 > wzjs >正文

领动做的企业网站怎么样安卓优化大师app下载安装

领动做的企业网站怎么样,安卓优化大师app下载安装,政法门户网站建设情况,app拉新推广项目JSON 一、问题描述二、ORACLE<一>、键值对拆分(REGEXP_SUBSTR)<二>、转为JSON<三>、不足 三、MYSQL<一>、键值对拆分(RECURSIVE)<二>、转为JSON 一、问题描述 假如某张表的某列是键值对数据,如何把这个键值对转为json格式,数据如下所示 dynast…

JSON

  • 一、问题描述
  • 二、ORACLE
    • <一>、键值对拆分(REGEXP_SUBSTR)
    • <二>、转为JSON
    • <三>、不足
  • 三、MYSQL
    • <一>、键值对拆分(RECURSIVE)
    • <二>、转为JSON

一、问题描述

假如某张表的某列是键值对数据,如何把这个键值对转为json格式,数据如下所示

dynastyvalue
唐朝唐太宗:李世民;唐高宗:李治;唐玄宗:李隆基;…
汉朝汉高祖:刘邦;汉文帝:刘恒;汉景帝:刘启;汉武帝:‘刘彻’;…

需要转成下面这种格式

dynastyvalue
唐朝[{“key”:“唐太宗”,“value”:“李世民”,“order”:“1”},{“key”:“唐高宗”,“value”:“李治”,“order”:“2”},{“key”:“唐玄宗”,“value”:“李隆基”,“order”:“3”}…]
汉朝[{“key”:“汉高祖”,“value”:“刘邦”,“order”:“1”},{“key”:“汉文帝”,“value”:“刘恒”,“order”:“2”},{“key”:“汉景帝”,“value”:“刘启”,“order”:“3”},{“key”:“汉武帝”,“value”:“刘彻”,“order”:“2”}…]

二、ORACLE

<一>、键值对拆分(REGEXP_SUBSTR)

with split_data as (select dynasty,regexp_substr(value,'[^;]+',1,level) as part,level as part_numfrom tableconnect by regexp_substr(value,'[^;]+',1,level) is not null
)select dynasty,part_num,regexp_substr(part,'[^;]+',1,1) as key,regexp_substr(part,'[^;]+',1,2) as valuefrom split_data

执行完就是如下形式

dynastypart_numkeyvalue
唐朝1唐太宗李世民
唐朝2唐高宗李治
唐朝3唐玄宗李隆基
汉朝1汉高祖刘邦
汉朝2汉文帝刘恒
汉朝3汉景帝刘启
汉朝4汉武帝刘彻

<二>、转为JSON

转为JSON有现成的转JSON函数,完整代码如下

with split_data as (select dynasty,regexp_substr(value,'[^;]+',1,level) as part,level as part_numfrom tableconnect by regexp_substr(value,'[^;]+',1,level) is not null
),key_value_pairs as (select dynasty,part_num,regexp_substr(part,'[^;]+',1,1) as key,regexp_substr(part,'[^;]+',1,2) as valuefrom split_data
)select dynasty,json_arrayagg(josn_object('key' VALUE key,'value' VALUE value,'order' value split_num))from key_value_pairsgroup by dynasty

<三>、不足

  • 有的键值对比较大,在ORACLE是CLOB类型,不支持字符串拆分,只能用如下MYSQL方法,再进行数据同步

三、MYSQL

<一>、键值对拆分(RECURSIVE)

  • MYSQL中没有正则字符串拆分函数,只能用递归进行拆分
with recursive kv_split as (select dynasty,trim(substring_index(value,';',1)) as kv_pairs,trim(substring(value,char_length(substring_index(value,';',1)) + 2)) as remaining,1 as splt_numfrom tableunion allselect dynasty,trim(substring_index(remaining,';',1)) as kv_pairs,trim(substring(remaining,char_length(substring_index(value,';',1)) + 2)) as remaining,split_num + 1 as splt_numfrom kv_splitwhere remaining != ''
)select dynasty,kv_pairs,splt_num from kv_split

执行完为如下形式,跟ORACLE大同小异

dynastypart_numkv_pairs
唐朝1唐太宗:李世民
唐朝2唐高宗:李治
唐朝3唐玄宗:李隆基
汉朝1汉高祖:刘邦
汉朝2汉文帝:刘恒
汉朝3汉景帝:刘启
汉朝4汉武帝:刘彻

<二>、转为JSON

转成JSON跟ORACLE一样,有现成的转JSON函数,完整代码如下所示

with recursive kv_split as (select dynasty,trim(substring_index(value,';',1)) as kv_pairs,trim(substring(value,char_length(substring_index(value,';',1)) + 2)) as remaining,1 as splt_numfrom tableunion allselect dynasty,trim(substring_index(remaining,';',1)) as kv_pairs,trim(substring(remaining,char_length(substring_index(value,';',1)) + 2)) as remaining,split_num + 1 as splt_numfrom kv_splitwhere remaining != ''
)select dynasty,json_arrayagg(json_object('key',cast(substring_index(kv_pairs,':',1) as unsigned),'value',substring_index(kv_pairs,':',-1),'order',split_num)) as json_resultfrom kv_splitgroup by dynasty
http://www.dtcms.com/wzjs/418630.html

相关文章:

  • 要怎么做网站免费正规的接单平台
  • 买域名做网站推广都是些什么国内十大软件培训机构
  • 国家企业信息公示系统全国广州百度快速排名优化
  • 开一个网站建设公司好链接购买平台
  • 淮安经济技术开发区建设局网站百度云搜索引擎网站
  • 网站导航设计模板武汉seo搜索引擎
  • 做网站好还是做微信小程序好网络营销seo培训
  • 贵阳百度做网站电话全国防疫大数据平台
  • 与做机器人有关的网站百度知道合伙人答题兼职入口
  • 网站建设的价值seo优化需要多少钱
  • 海口快速建站模板曹操论坛seo
  • 查企业免费北京百度推广排名优化
  • 网站建设合同注意点百度官网登录入口手机版
  • 中小企业做网站网络推广外包怎么样
  • 轻淘客一键做网站合肥seo培训
  • 鱼馆网站的前期策划如何宣传自己的网站
  • 快速提高网站流量互联网推广项目
  • 怎么做赌钱网站国外搜索引擎网站
  • 泰安网站建设世界足球世界排名
  • 香港美女做旅游视频网站长沙seo优化服务
  • 多语网站百度网站官网入口
  • 高端+旅游+网站建设公司免费推广网站
  • 临朐网站建设外链网站推荐几个
  • 凡科建站的模板 怎么弄下来seo的工具有哪些
  • 如何做彩票销售网站新品上市怎么推广词
  • 审查网站开发合同查询关键词
  • 新网站建设验收中国电信视频app下载
  • 宁波免费建站百度认证
  • 网站收款即时到账怎么做的微信广告投放推广平台
  • 手机网站用什么软件做的好附近的成人电脑培训班