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

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

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

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

传参内容如下:

1 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如下:

1 select    ID, Quantity, FileID=f.value
2 from    openjson (@json, '$.Positions')
3 with (
4     ID int,
5     Quantity int,
6     Files nvarchar(max) '$.Files' as json
7 ) x
8 cross    apply openjson(x.Files, '$') f

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

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

  1. 在SQL Server 2017中使用Python进行数据插值和转换

    As a continuation to my previous article, How to use Python in SQL Server 2017 to obtain advanced da ...

  2. 如何在SQL Server 2017中实现图形数据库

    介绍 (Introduction) Graph database 图形数据库 A graph database is a type of database whose concept is based ...

  3. sql查询禁用缓存_如何在SQL Server 2017中启用和禁用身份缓存

    sql查询禁用缓存 Every data warehouse developer is likely to appreciate the significance of having surrogat ...

  4. SQL Server 2017中的Python:增强的数据库内机器学习

    Microsoft SQL Server是一款优秀的关系型数据库管理系统,Python是目前流行的数据科学语言之一,拥有丰富的库生态系统.从SQL Server 2017的CTP 2.0版本开始,可以 ...

  5. python中引入sql的优点_SQL Server 2017中的Python:增强的数据库内机器学习

    Microsoft SQL Server是一款优秀的关系型数据库管理系统,Python是目前流行的数据科学语言之一,拥有丰富的库生态系统.从SQL Server 2017的CTP 2.0版本开始,可以 ...

  6. sql server新增列_SQL Server 2017中的新增功能

    sql server新增列 SQL Server 2017 is considered a major release in the history of the SQL Server life cy ...

  7. sql中截取字符串函数_SQL Server 2017中的顶级SQL字符串函数

    sql中截取字符串函数 SQL Server 2017 has been in the talk for its many features that simplify a developer's l ...

  8. 用SQL Server 2017图形数据库替换数据仓库中的桥表

    Just like in Santa's Bag of Goodies, every release of SQL Server often has something for everyone – ...

  9. 在SQL Server 2017上充分利用Python

    介绍 (Introduction) One of the new features announced with SQL Server 2017 is support for the Python l ...

最新文章

  1. ASP.NET页面错误处理
  2. iOS动画开发之五——炫酷的粒子效果
  3. 【每日算法】C语言8大经典排序算法(2)
  4. python挖长尾词 源码,如何用代码挖局长尾关键词
  5. Android ViewPager
  6. android 固定大小,android 固定大小取图片缩略图
  7. Spring框架:跨域问题之使用@CrossOrigin注解解决失败的原因总结
  8. python能做什么工作-学python后能找什么工作?Python是什么?
  9. 使用HTML5里的classList操作CSS类
  10. MySQL必知必会——数据库基础知识和MySQL基本使用
  11. 电子书 “已取消到该网页的导航”或“导航已取消”解决方法
  12. 【数据库】一对一、一对多、多对多关系
  13. PS~了解PS的第一步,基本操作
  14. 计算机课 - 计算机科学导论
  15. linux ipa 权限管理,FreeIPA增加Linux用户及sudo权限
  16. 51单片机——电子密码锁
  17. redis 生成订单号学习
  18. Windows 7下直接开启AHCI
  19. 全景合成软件PTGui如何操作?主要功能有哪些?
  20. 基于Java毕业设计菜谱宣传系统源码+系统+mysql+lw文档+部署软件

热门文章

  1. 数据库设计规范之对象设计使用规范
  2. 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
  3. 使用OpenMP实现多线程,不仅是用在循环处理上
  4. python中string.digits_python学习笔记五:字符串方法
  5. 正在搜索需要的文件_装机必备!分享4个电脑软件,3分钟搞定文件管理难题!...
  6. iOS 11开发教程(四)iOS11模拟器介绍一
  7. 分享Kali Linux 2017年第30周镜像文件
  8. java程序无法连接redis_无法使用jedis连接到redis
  9. sqlyog怎么设置默认值_详细讲解如何用SQLyog来分析MySQL数据库
  10. html增加删除线,HTML如何添加删除线?