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数据类型,不 ...
随机推荐
- 《SpringCloud docker》读书笔记
yml配置意义 当Ribbon和Eureka配合使用时,会自动将虚拟主机名映射成微服务的网络地址. yml中info可以展示一些信息 server: port: 8000 # 指定端口 spring: ...
- java并发编程(六)----(JUC)Semaphore
Semaphore,从字面意义上我们知道他是信号量的意思.在java中,一个计数信号量维护了一个许可集.Semaphore 只对可用许可的号码进行计数,并采取相应的行动.拿到信号量的线程可以进入代码, ...
- 消息中间件-activemq实战之整合Spring(四)
前面的理论准备已经很充分,这一节我们来实战:将activemq整合到Spring框架才行中,因为Spring已经集成了JMS,这也为我们配置activermq带来了方便. 1. Spring对jms的 ...
- CSS:抗锯齿 font-smoothing
本文引自:http://www.cnblogs.com/sunshq/p/4595673.html -webkit-font-smoothing 这个属性可以使页面上的字体抗锯齿,使用后字体看起来会更 ...
- 通过wireshark学习Traceroute命令和mtr(UDP,ICMP协议)
traceroute: 通过TTL限定的ICMP/UDP/TCP侦测包来发现从本地主机到远端目标主机之间的第三层转发路径.用来调试网络连接性和路由问题. mtr: traceroute的一个变种,能根 ...
- HTML5 Device Access (设备访问)
camera api (含图片预览) 参考地址 主要为利用input type=file, accept="image/*" 进行处理 图片预览方式(两种) const file ...
- ZooKeeper系列(三)—— Zookeeper 常用 Shell 命令
一.节点增删改查 1.1 启动服务和连接服务 # 启动服务 bin/zkServer.sh start #连接服务 不指定服务地址则默认连接到localhost:2181 zkCli.sh -serv ...
- 深入理解Nginx及使用Nginx实现负载均衡
前言: 最近在部署项目时要求实现负载均衡,有趣的是发现网上一搜全部都是以下类似的配置文件 upstream localhost{ server 127.0.0.1:8080 weight=1; ser ...
- windows下搭建syslog服务器及基本配置
一.环境 windows7 64位+ kiwi_syslog_server_9.5.0 kiwi_syslog百度云下载地址: 链接: https://pan.baidu.com/s/1EpPBNsL ...
- java线程池,工作窃取算法
前言 在上一篇<java线程池,阿里为什么不允许使用Executors?>中我们谈及了线程池,同时又发现一个现象,当最大线程数还没有满的时候耗时的任务全部堆积给了单个线程, 代码如下: T ...