一,单层Json数据取出

1.取出取出@JsonData字符串中的  __type,DocNo,OrderPriceTC,Organization_Code 字段

DECLARE @JsonData NVARCHAR(max)=''
SET @JsonData='[{
"__type":"CreateRcvFromPO_ReturnData:UFIDA.U9.Cust.XDS.ISV",
"DocNo":"RCV02204280003",
"ItemConsumeID":null,
"OrderPriceTC":0,
"Organization_Code":null,
"RcvRercordID":null
}]'
select * from openjson(@JsonData)
with(
id varchar(10) '$.__type',
Plies NVARCHAR(50) '$."DocNo"',
Createtime NVARCHAR(50) '$."OrderPriceTC"',
Organization_Code NVARCHAR(50) '$."Organization_Code"'
);

一,双层Json数据取出 / 多层数据取出

1.定义一个多层的Json

DECLARE @JsonData NVARCHAR(max)=''
--多个 嵌套Json
SET @JsonData='{
"d":{
"__type":"CreateRcvFromPO_ReturnData:UFIDA.U9.Cust.XDS.ISV",
"DocNo":"RCV02204280003",
"Organization_Code":null,
"RcvRercordID":null,
"ReturnRcvLineID":[
{
"__type":"CreateRcvFromPO_ReturnData.RcvLineID:#UFIDA.U9.Cust.XDS.ISV",
"rcvLineID":1002310281689864,
"wmsLineNo":"0001"
},
{
"__type":"CreateRcvFromPO_ReturnData.RcvLineID:#UFIDA.U9.Cust.XDS.ISV",
"rcvLineID":1002310281689866,
"wmsLineNo":"0002"
}
],
"Seiban":null,
"Seq":0,
"ShipQtyTUAmount":0
}
}'

2.第一层:d 第二层:d中的 DocNo,RcvRercordID,Seq,ReturnRcvLineID等字段, 第三层:ReturnRcvLineID 中的 __type,rcvLineID,wmsLineNo 等字段

3.获取第二层中的 DocNo 既然要获取到第二层 那么就先要获取到第一层的d 然后获取d下的DocNo 字段,那么就需要JSON_QUERY() 函数

--双层嵌套
SELECT *
FROM OPENJSON(JSON_QUERY(@JsonData,'$.d'))---获取到d层
WITH(
DocNo NVARCHAR(50) '$.DocNo', --d层下DocNo字段
OrderPriceTC NVARCHAR(50) '$.OrderPriceTC'--d层下OrderPriceTC字段
);

4.获取到第三层的 rcvLineID,wmsLineNo 字段  先使用函数JSON_QUERY() 先获取到d层 然后再嵌套一个 JSON_QUERY()函数 获取到 ReturnRcvLineID层

--三层嵌套
SELECT *
FROM OPENJSON(JSON_QUERY(JSON_QUERY(@JsonData,'$.d'),'$.ReturnRcvLineID'))--先获取到d 然后再获取到d下的 ReturnRcvLineID
WITH(
__type NVARCHAR(50) '$.__type', --获取ReturnRcvLineID 下的 __type字段
rcvLineID NVARCHAR(50) '$.rcvLineID', --获取ReturnRcvLineID 下的 rcvLineID字段
wmsLineNo NVARCHAR(50) '$.wmsLineNo' --获取ReturnRcvLineID 下的 wmsLineNo字段
);

SQL Server 解析Json(单层/多层)的更多相关文章

  1. SQL SERVER解析Json

    外包的项目,有很多信息存储在JSON中,无论是查询还是修改信息都十分麻烦.找了一些实用的SQL Function去解析,并附修改例子. 使用过程: 1. 需要在SQL新建自定义类型 table: Hi ...

  2. 三、SQL Server 对JSON的支持

    一.SQL Server 对JSON的支持 一.实现效果   现在 我用数据库是sql2008 ,共计2万数据. 每一条数据里面的有一个为attribute字段是 json存储状态属性,  我怎么查看 ...

  3. .NET Core 1.1日期解析无APi、SQL Server数据转换JSON

    前言 在批量导入Excel中的数据时发现出生日期为整数也就是为天数,结果倒腾了翻,这是其一,其二是数据库中的某一列存的是JSON数据,但是场景是为了作为作业来运行,此时不得不将筛选出的数据手动拼接成J ...

  4. SQL Server 2016 JSON原生支持实例说明

    背景 Microsoft SQL Server 对于数据平台的开发者来说越来越友好.比如已经原生支持XML很多年了,在这个趋势下,如今也能在SQLServer2016中使用内置的JSON.尤其对于一些 ...

  5. SQL Server之JSON 函数

    SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型.XML索引及各种管理或输出XML格式的函数.随着JSON的流行,SQL Server2016开始支持JSON数据类型,不 ...

  6. SQL Server解析XML数据的方法详解

    --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <Info Name=&q ...

  7. sql server 2016 JSON 学习笔记

    虽然现在win服务器已经几乎不用了,但是网上看到2016开始原生支持json 还是想试试 建立一个表  id int , json varchar(2000) json字段中输入数据 {"r ...

  8. 再次提供一个纯粹通过pl/sql解析json的方法。

    在github上面有一个叫pljson的项目,该项目就是用pl/sql 来解析json的. 项目地址:pljson(需翻|强),如果翻不了强的同学,我在国内克隆了一个副本,不定期同步更新 pljson ...

  9. 为sql server 增加 parseJSON 和 ToJSON 函数

    在SqlServer中增加Json处理的方法 Sql Server 存储非结构话数据可以使用xml类型,使用xpath方式查询,以前写过一篇随笔:Sql Server xml 类型字段的增删改查 除了 ...

  10. SQL Server : Browser服务

    SQL Server : Browser服务是SQL Server 2005新增的,简单的说,如果一个物理服务器上面有多个SQL Server实例,那么为了确保客户端能访问到正确的实例,所以SQL S ...

随机推荐

  1. Salesforce 发送Email时遇到的问题(Case当中的Filed不出现Email选项:ケースのフィールドにメールタブが表示されない)。

    普段はケースの発生源はメールと選択する場合.ディフォルトで「フィールド」の中に「メール」というタブが出てきますが. (平时当我们选择[Case]的[来源]为[Email]时,默认就会在field中出现 ...

  2. IBM服务器的2种IMM和1种raid管理方式

    IMM两种进入方式和Raid管理软件 前面板IMM管理接口:     用网线连接服务器前置面板的管理接口到其他 PC 或笔记本,然后 PC 或笔记本的 IP 地址配置为 192.168.70.0/24 ...

  3. openssl的自签名证书不被信任问题

    1.不同的浏览器安全策略不同 1.1谷歌系的会提示没有绑定域名. 此服务器无法证实它就是 192.168.0.127 - 它的安全证书没有指定主题备用名称(Subject Alternative Na ...

  4. signature

    signature可以翻译成基调.特征标记.签名.

  5. hyperledger explorer 环境搭建

    ### nodejs 下载nodejs二进制包: wget https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz 解压xz数据 ...

  6. lineHeight 和fontSize的区别

    参考资料:https://blog.csdn.net/WuLex/article/details/94667136 暂时记录,待测试确认. lineHeight包含了行间距,而fontSize只是字体 ...

  7. Vue 解决因网络延时 页面中的{{XXX}}模板直接展示在用户面前,配合v-cloak指令

    v-cloak指令: 1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉 v-cloak属性 2.使用 CSS配合v-cloak可以解决网速慢时,页面展示出{{XXX}}模板的问题 案例: ...

  8. Vue的v-html指令说明,含案例

    v-html指令总结: 1.作用:向指定节点中渲染包含html结构的内容 2.与插值语法的区别: (1)v-html 会替换掉节点中所有的内容,{{}}则不会 (2)v-html 可以识别html 结 ...

  9. Node.js实现国密算法

    一.node.js环境安装 1 去官网下载压缩包,并放置到/usr/local/bin文件夹下 2 进行环境变量配置 vim /etc/profile 在环境变量文件的末尾添加 export NODE ...

  10. 字体样式font-style

    font-family 指的是字体比如 "宋体","微软雅黑"等等 具体字体:微软雅黑.宋体.黑体.宋体等等 字体系列:sans-serif.serf.mono ...