SQL存储实现将JSON自动转化成SQL数据列
CREATE PROCEDURE sp_GetJsonFields
(
@Json VARCHAR(MAX)
) AS
BEGIN
SELECT @Json=REPLACE(@Json,'{','')
SELECT @Json=REPLACE(@Json,'}',',')
DECLARE @temp VARCHAR(MAX)
DECLARE @objName VARCHAR(4000)
DECLARE @objValue VARCHAR(4000)
DECLARE @fieldSql VARCHAR(MAX)
SET @fieldSql='select ' WHILE LEN(@Json)>0 --LEN 函数返回文本字段中值的长度
BEGIN
--通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0
SELECT @temp=SUBSTRING(@Json,0,CHARINDEX(',',@Json,0))--截取到该逗号的位置字符串
--
SELECT @Json=RIGHT(@Json,LEN(@Json)-LEN(@temp)-1)--再获取右边字符串信息 ---取对象字段名称信息
set @objName =left(@temp,CHARINDEX(':',@temp,0)-1)
--取对象字段名称对应的值
set @objValue =right(@temp,len(@temp)-CHARINDEX(':',@temp,0)) --PRINT @objName+'='+ @objValue+';'
--替换""字符为''
set @fieldSql=@fieldSql+REPLACE(@objValue,'"','''')+' as '+REPLACE(@objName,'"','')+','
END
SET @fieldSql=LEFT(@fieldSql,LEN(@fieldSql)-1)
--EXEC sp_executesql @fieldSql
EXEC (@fieldSql)
END
GO EXEC sp_GetJsonFields @json=
'{"CarGid":"835A38CC-3D19-4123-AB7A-9AFC9704818A","CarQty":1,
"CarPrice":300000.00,"ShopGid":"835A38CC-6D19-4323-AB7A-6AFC9704765A","ShopName":"全新幻影新能源汽车直售店",
"CarName":"幻影系能源SL00",
"CarImage":"http:\/\/Carimg.Soft.com\/images9f024a01993cc68f89aab295"}'
抛砖引玉 引荐过来的东西 注意细节方面 就是 存贮的字段值中的json数据中 其它字段值的中间不能有逗号存在不然会引起 查值异常
譬如:"CarName":"幻影系能源SL00", 不能存在值"CarName":"幻影系能源SL00,全新一代特别奉献版,越野系列",
生成数据:
SQL存储实现将JSON自动转化成SQL数据列的更多相关文章
- sql server编写通用脚本自动统计各表数据量心得
工作过程中,如果一个数据库的表比较多,手工编写统计脚本就会比较繁琐,于是摸索出自动生成各表统计数据量脚本的通用方法,直接上代码: /* 脚本来源:https://www.cnblogs.com/zha ...
- SQL Server2016 原生支持JSON
SQL Server2016 原生支持JSON SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML 索引以及各种管理 XML 或输出 XML 格式的函数. ...
- NewSQL——优化的SQL存储引擎(TokuDB, MemSQL)+?
NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性. NewSQL 是指这样一类新式的关系型数据库 ...
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
自动备份将在运行 SQL Server 2014 Standard 或 Enterprise 的 Azure VM 上自动为所有现有数据库和新数据库配置托管备份到 Azure. 这样,便可以配置使用持 ...
- (译)Windows Azure的7月更新:SQL数据库,流量管理,自动缩放,虚拟机
Windows Azure的7月更新:SQL数据库,流量管理,自动缩放,虚拟机 今早我们释出一些很棒的Windows Azure更新.这些新的提升包括:SQL数据库:支持SQL自动导出和一个新的高级层 ...
- --自动创建备份SQL
--自动创建备份SQL DECLARE @dbname VARCHAR(50) ,--要备份的数据库名称 @bakname VARCHAR(50) ,--备份后的bat名称 @sql VARCHAR( ...
- js将json字符串转化成json对象的方法
js将json字符串转化成json对象的方法: JSON.parse(jsonObject)
- javascript中字符串格式json如何转化成json对象
什么是JSON JSON(JavaScript Object Notation)是一种优美的JavaScript对象创建方法.JSON也是一种轻量级数据交换格式.JSON非常易于人阅读与编写,同时利于 ...
- SQL中采用Newtonsoft.Json处理json字符串
原文 SQL中采用Newtonsoft.Json处理json字符串 使用环境: SQL Server2005; VS2010; 关于SQL中部署CLR程序集的方法,网上一搜一大把,需要了解的自行查阅, ...
随机推荐
- Selenium_webdriver+java通过读取firefox、chrome的cookie文件,实现自动登录
遇到过很多问题,通过查资料得出的最终结果!
- Win10上的Docker应用:Docker-compose(容器编排)
阅读目录: Docker应用:Hello World Docker应用:Docker-compose(容器编排) 前言: 昨天完成了Docker入门示例(Docker应用:Hello World),示 ...
- 牛客NOIP暑期七天营-普及组2D
链接:https://ac.nowcoder.com/acm/contest/926/D来源:牛客网 在一维坐标系中,给定 n条有颜色的线段,第 i条线段的左右端点分别为 li和 ri,此外它的颜 ...
- 自学git
网址:https://github.com/join/plan 注册:gzhcsu 注册邮箱:QQ邮箱.
- ZOJ3261-Connections in Galaxy War-(逆向并查集+离线处理)
题意: 1.有n个星球,每个星球有一个编号(1-n)和一个能量值. 2.一开始将某些星球连通. 3.开战后有很多个操作,查询某个星球能找谁求救或者摧毁两颗星球之间的连通路径,使其不能连通.如果连通则可 ...
- HDU6703 array
[传送门] 比赛的时候想了半天的带修改主席树(其实之前只写过一次.),两个log甚至三个log都想了,自闭了五个小时还是不会实现.问了一下西瓜得到了一个非常妙的1 log解法.此处膜瓜
- 最长公共上升子序列 O(n^2)
#include <bits/stdc++.h> using namespace std; const int MAXN = 5005; int A[MAXN], B[MAXN], N, ...
- (3)使用Android手机作为树莓派的屏幕
https://jingyan.baidu.com/album/676629977483b154d51b848e.html
- 【C/C++】指针
指针定义 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,必须在使用指针存储其他变量地址之前,对其进行声明.指针变量声明的一般形式为: type *var-na ...
- day39线程
复习: C/S架构: 客户端 服务器模式 B/S架构: 浏览器 服务器模式 B/S架构的客户端对PC机的性能要求比较低.统一了应用的接口 B/S架构隶属于C/S架构 TCP UDP的区 ...