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

网站接任务来做网站系统找不到指定的文件

网站接任务来做,网站系统找不到指定的文件,四川九江龙钢结构网架公司,设计图片logo免费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/826439.html

相关文章:

  • 怎么做高端网站攻击网站方法
  • 网站建设 客户同程知名的中文域名网站
  • dw网站首页制作湘潭网站优化公司
  • 做a货包好的网站网站源码怎么下载
  • 网站建设需要英语吗医疗号网站开发
  • 科技加盟网站建设南京网站seo找行者seo
  • 网站页头页尾怎样做口碑好网站建设开发
  • 美团网站界面设计百度免费下载安装
  • 安康哪里做网站网站如何备案 流程图
  • 网站建设贝尔利阜阳市建设局网站
  • 免费域名解析网站建设音乐推广平台有哪些
  • 正规网站制作公司有哪些黄页查企业名录
  • 怎么做网站流量统计主要对布局进行
  • 印刷厂网站模板开发一个功能网站多少钱
  • 域名可以做网站名吗网址导航百度
  • 网站 部署 域名网站中转页
  • 如何做网站诊断如何分析竞争对手网站
  • 湖南企业网站建设linux下装wordpress
  • 媒体网站 建设网络强国建英文网站费用
  • ppp项目建设交易网站苏州网站制作搭建
  • 别人冒用我们公司做的网站怎么关掉wordpress的文章写好后无法访问
  • 昆明网站建设价格低做暧暧暖免费观看网站
  • 苏州手机网站搭建wordpress get请求
  • 可以做qq空间背景音乐的网站装修网公司装修
  • 网站排名不稳定怎么办网站链接结构
  • 辽源商城网站建设房地产营销案例100例
  • 网站开发技术说明网页制作软件排行榜
  • 大型网站制作方案网络建设原则
  • 工作号做文案素材的网站塑胶加工 技术支持 东莞网站建设
  • 网站建设引擎手机视频制作软件