SQL,如果碰到Json,你会怎么做?
1、Json串如下:
DECLARE @JsonInfo NVARCHAR()
SET @JsonInfo=N'
{
"CalcPayInput":{
"ServiceCode":"",
"Items":[
{
"Length":,
"Width":,
"High":
}
]
},
"BusinessBody":{
"WaybillNumber":"SZY222019082001135"
}
}
'
SELECT Len(@JsonInfo) /*实际存储建议使用这种,压缩一行保存*/
SET @JsonInfo=N'{"CalcPayInput":{"ServiceCode":"2131296","Items":[{"Length":10,"Width":50,"High":80}]},"BusinessBody":{"WaybillNumber":"SZY222019082001135"}}'
SELECT Len(@JsonInfo)
2、获取json串的ServiceCode字段的值
注意:SQL SERVER 版本以后的支持(旧版本需要升级) 解析Json之前验证一下是否是Json语句select ISJSON(@JsonInfo) 如果字符串包含有效 JSON,则返回 ;否则,返回 。 如果 expression 为 NULL,则返回 NULL。 SELECT JSON_VALUE(@JsonInfo,'$.CalcPayInput.ServiceCode')ServiceCode
3、获取json串的Length字段的值
注意:层级关系,Items是集合,获取集合的第一项,[],索引从0开始 SELECT JSON_VALUE(@JsonInfo,'$.CalcPayInput.Items[0].Length') Length
4、获取json串的WaybillNumber字段的值
注意:Json串第一层存在多个子对象 SELECT JSON_VALUE(@JsonInfo,'$.BusinessBody.WaybillNumber') WaybillNumber
5、修改json串的WaybillNumber字段的值为YZY222019082001135
注意:Json串第一层存在多个子对象 SELECT JSON_MODIFY(@JsonInfo, '$.BusinessBody.WaybillNumber','YZY222019082001135') JsonInfo
6、去除json串的WaybillNumber字段
注意:将不需要的字段定位到,利用JSON_MODIFY函数置为NULL SELECT JSON_MODIFY(@JsonInfo, '$.BusinessBody.WaybillNumber',null) JsonInfo
7、添加json串的ProductCode字段
注意:将不需要的字段定位到,利用JSON_MODIFY函数添加 SELECT JSON_MODIFY(@JsonInfo, '$.BusinessBody.ProductCode','') JsonInfo
8、参考文档
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/isjson-transact-sql?view=sql-server-2017
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/json-value-transact-sql?view=sql-server-2017
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/json-query-transact-sql?view=sql-server-2017
https://docs.microsoft.com/zh-cn/sql/t-sql/functions/json-modify-transact-sql?view=sql-server-2017
微信: 查看我的相册
简书:https://www.jianshu.com/u/dbfbe12c187d
欢迎大家加我,咨询问题,尽我的能力解决,我知道的问题。
SQL,如果碰到Json,你会怎么做?的更多相关文章
- MySQL 8.0: From SQL Tables to JSON Documents (and back again)
MySQL 8.0: From SQL Tables to JSON Documents (and back again) | MySQL Server Bloghttps://mysqlserver ...
- 三、SQL Server 对JSON的支持
一.SQL Server 对JSON的支持 一.实现效果 现在 我用数据库是sql2008 ,共计2万数据. 每一条数据里面的有一个为attribute字段是 json存储状态属性, 我怎么查看 ...
- 《大话数据库》-SQL语句执行时,底层究竟做了什么小动作?
<大话数据库>-SQL语句执行时,底层究竟做了什么小动作? 前言 大家好,我是Taoye,试图用玩世不恭过的态度对待生活的Coder. 现如今我们已然进入了大数据时代,无论是业内还是业外的 ...
- SQL Server 2016 JSON原生支持实例说明
背景 Microsoft SQL Server 对于数据平台的开发者来说越来越友好.比如已经原生支持XML很多年了,在这个趋势下,如今也能在SQLServer2016中使用内置的JSON.尤其对于一些 ...
- cocos2d-x 读取 json 文件并用 jsoncpp 做解析
一码胜万言(请看注释) CclUtil.h // // CclUtil.h // PracticeDemo // // Created by kodeyang on 8/1/13. // // #if ...
- 在SQL 中生成JSON数据
这段时间接手一个数据操作记录的功能,刚拿到手上的时候打算用EF做,后来经过仔细考虑最后还是觉定放弃,最后思考再三决定: 1.以模块为单位分表.列固定(其实可以所有的操作记录都放到同一个表,但是考虑到数 ...
- .NET Core 1.1日期解析无APi、SQL Server数据转换JSON
前言 在批量导入Excel中的数据时发现出生日期为整数也就是为天数,结果倒腾了翻,这是其一,其二是数据库中的某一列存的是JSON数据,但是场景是为了作为作业来运行,此时不得不将筛选出的数据手动拼接成J ...
- SQL SERVER解析Json
外包的项目,有很多信息存储在JSON中,无论是查询还是修改信息都十分麻烦.找了一些实用的SQL Function去解析,并附修改例子. 使用过程: 1. 需要在SQL新建自定义类型 table: Hi ...
- SQL Server之JSON 函数
SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型.XML索引及各种管理或输出XML格式的函数.随着JSON的流行,SQL Server2016开始支持JSON数据类型,不 ...
随机推荐
- Fragment 使用详解
极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...
- LR有的JMeter也有之二“检查点”
好吧!接着上一篇文章的内容和思路,继续前进. 检查点:简单的来理解一下,上一章讲到,我们对用户名和密码进行了参数化,那么怎样来判断jmeter有没有正确调用test.dat里面的文件呢.当然,我们可以 ...
- 解决Activiti5.22流程图部署在Windows上正常,但在linux上部署后出现中文变方块的问题
总结/朱季谦 楼主最近在做公司的工作流平台,发现一个很无语的事情,Activiti5.22的流程图在Windows环境上部署,是可以正常查看的,但发布到公司的Linux服务器上后,在上面进行流程图在线 ...
- 第二十二章 跳出循环-shift参数左移-函数的使用 随堂笔记
第二十二章 跳出循环-shift参数左移-函数的使用 本节所讲内容: 22.1 跳出循环 22.2 Shift参数左移指令 22.3 函数的使用 22.4 实战-自动备份mysql数据库和nginx服 ...
- python3学习--文件读写
这一篇我们来看文件读写操作. 打开和创建文件主要是open()函数: f = open('filename','r') # 读模式 f = open('filename','w') # 写模式 f = ...
- 算法与数据结构基础 - 滑动窗口(Sliding Window)
滑动窗口基础 滑动窗口常用来解决求字符串子串问题,借助map和计数器,其能在O(n)时间复杂度求子串问题.滑动窗口和双指针(Two pointers)有些类似,可以理解为往同一个方向走的双指针.常用滑 ...
- Java 内存模型和 JVM 内存结构真不是一回事
这两个概念估计有不少人会混淆,它们都可以说是 JVM 规范的一部分,但真不是一回事!它们描述和解决的是不同问题,简单来说, Java 内存模型,描述的是多线程允许的行为 JVM 内存结构,描述的是线程 ...
- 基于Spring Boot自建分布式基础应用
目前刚入职了一家公司,要求替换当前系统(单体应用)以满足每日十万单量和一定系统用户负载以及保证开发质量和效率.由我来设计一套基础架构和建设基础开发测试运维环境,github地址. 出于本公司开发现状及 ...
- SQL Server 数据完整性的实现——约束
SQL Server数据库采用的是关系数据模型,而关系数据模型本身的优点之一就是模型本身集成了数据完整性.作为模型一部分而实施的数据完整性(例如在创建数据表时的列属性定义)称作为声明式(Declara ...
- python paramiko外部传参和内部调用命令的方法
学习了很久的python,但在工作中使用的时候,却发现不知道怎么传参进入到python中执行,所以这两天就研究 了python args怎么将外部参数传入到python中执行 1.首先使用python ...