开发新的系统,DB部分使用了SQL Server从2016版开始自带的Json解析方式。

用了快半年,在个人项目,以及公司部分项目上使用了,暂时还没遇到大的问题,和性能问题。

今天在解析Json的多级参数遇到了点小问题,在此记录一下:

传参内容如下:

 declare @json varchar(max)=N'{"Customer":36,"Positions":[{"ID":0,"Quantity":180000,"Files":[180,177,175,172,170,169,167,164,161,162,159,158,153,152]}]}';

想解析出Positions里面的Files,但是一直报错,或者NULL。

查询文档,发现这种解析需要制定的字段类型,并准成json才行。

解析的SQL Script如下:

 select    ID, Quantity, FileID=f.value
from openjson (@json, '$.Positions')
with (
ID int,
Quantity int,
Files nvarchar(max) '$.Files' as json
) x
cross apply openjson(x.Files, '$') f

*注:其中第6行的写法是固定的:字段类型及后面的。

关于SQL Server 2017中使用json传参时解析遇到的多层解析问题的更多相关文章

  1. CDC在sql server 2017中无法使用的问题

    Symptom === sp_MScdc_capture_job in the CDC job raised error message Msg 217, Level 16, State 1, Pro ...

  2. 在SQL Server 2017 中,当Alwasyon group启用了DTC_SUPPORT = PER_DB, 会导致无法创建replicaiton.

    当Alwasyon group启用了DTC_SUPPORT = PER_DB, 会导致无法创建replicaiton.无法修改已经存在的replication. 原因: 当当Alwasyon grou ...

  3. SQL Server 2016原生支持JSON

    转载原地址: http://www.cnblogs.com/lyhabc/p/4747694.html SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML ...

  4. Linux 上的 SQL Server 2017 的安装指南

    一:介绍背景 微软在2016年 3 月首次对外宣布了 Linux 版的 SQL Server,并于2017年 7 月发布了首个公开 RC 版.前几日在美国奥兰多召开的微软 Ignite 2017 大会 ...

  5. SQL Server 2017 各版本之间的差异

    SQL Server 2017的亮点 您选择的语言和平台 使用您选择的语言在本地和云中(现在在 Windows.Linux 和 Docker 容器上)构建现代应用程序. 行业领先的性能 充分利用任务关 ...

  6. asp.net core 中 sql server 2017 数据库连接测试

    使用sql server 2017 进行连接: 配置appsettings.json文件 { "ConnectionStrings": { "DefaultConnect ...

  7. Python和SQL Server 2017的强大功能

    Python和SQL Server 2017的强大功能 摘要: 源:https://www.red-gate.com/simple-talk/sql/sql-development/power-pyt ...

  8. 迁移数据库数据到SQL Server 2017

      概述 本篇我们将利用DMA一步一步实现SQL Server 的迁移.帮助大家理解现在的SQL Server与新版本的融合问题,同时需要我们做哪些操作来实现新版本的升级或者迁移. SQL Serve ...

  9. SQL Server存储过程中使用表值作为输入参数示例

    这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...

随机推荐

  1. 国内maven仓库地址资源汇总

    国内maven仓库地址:阿里云maven仓库,网易163maven仓库,以及其他maven仓库地址. 国内下载maven一般速度都很慢,下载需要很久时间.这里汇总了一些国内的镜像资源 附带pom文件中 ...

  2. 127.0.0.1和0.0.0.0和本机IP的区别

    在一次网络课程的听课中,我突然察觉到自己有个疑惑就是在配置一些服务的时候我们会用到localhost(127.0.0.1)或者0.0.0.0 和当前主机IP这三个.那么具体该怎么使用这三个地址,这三个 ...

  3. HihoCoder - 1040 矩形判断

    矩形判断 给出平面上4条线段,判断这4条线段是否恰好围成一个面积大于0的矩形. Input 输入第一行是一个整数T(1<=T<=100),代表测试数据的数量. 每组数据包含4行,每行包含4 ...

  4. redis实战笔记(6)-第6章 使用 Redis构建应用程序组件

    本章主要内容   1.构建两个前缀匹配自 动补全程序 2.通过构建分布式锁来提高性能 3.通过开发计数信号量来控制并发 4.构建两个不同用途的任务队列 5.通过消息拉取系统来实现延迟消息传递 6.学习 ...

  5. jquery ajax abort()方法

    如果用户频繁点击ajax请求,除最后一个外都是无效的,趁早结束节省资源.也可能出现更严重的问题,最后一个发送的请求,响应未必是最后一个,有可能造成混乱.用jquery的abort方法,可以中途中止aj ...

  6. ruby执行周期性任务

    1.前言      无论是用ruby做系统管理,还是用rails做web开发,都可能遇到周期性任务,它们按照一定时间周期(1小时,2天......)持续地触发.在ruby中,我认为一次性任务使用sid ...

  7. 本地开启https的nginx配置

    下载证书和key放置在nginx配置文件同级目录下,然后添加配置内容,监听443端口,如果本地443端口被占用,可以使用其他端口测试. server { listen 443; server_name ...

  8. 求最短路径的三种算法: Ford, Dijkstra和Floyd

    Bellman-Ford算法 Bellman-Ford是一种容易理解的单源最短路径算法, Bellman-Ford算法需要两个数组进行辅助: dis[i]: 存储顶点i到源点已知最短路径 path[i ...

  9. [转]How to Create an Add-in for Microsoft Outlook

    本文转自:https://www.codeproject.com/Articles/1112815/How-to-Create-an-Add-in-for-Microsoft-Outlook This ...

  10. zoj Calculate the Function

    Calculate the Function Time Limit: 2 Seconds      Memory Limit: 65536 KB You are given a list of num ...