继续说一下2016里面的json功能(1)
首先先来测试数据,数据是使用之前的,就
不要在意这些细节了啊~
借用上一篇的测试数据
create table t1(ID int identity,name nvarchar(50),Chinese int ,Math int) insert into t1 values ('张三',90,80),('李四',75,90),('王五',68,100),('赵六',90,null);
然后我们使用这个表里面生成的json 来进行测试,最简单的例子
declare @v nvarchar(600) = N'[{"ID":1,"name":"张三","Chinese":90,"Math":80},{"ID":2,"name":"李四","Chinese":75,"Math":90},{"ID":3,"name":"王五","Chinese":68,"Math":100},{"ID":4,"name":"赵六","Chinese":100}]'
select * from openjson(@v)
with (
ID int '$.ID',
name nvarchar(50) '$.name',
Math int '$.Math',
Chinese int '$.Chinese'
)
------------------------
ID name Math Chinese
----------- -------------------------------------------------- ----------- -----------
1 张三 80 90
2 李四 90 75
3 王五 100 68
4 赵六 NULL 100
就是最简答的将Json 解析成结果集的形式,如果节点不存在那么赋值则为空
其实也就跟openxml 的用法比较类似
然后用法2 ,可以解析出json 格式里面的格式,当openjson 后面没有加关键字with 的时候,则认为是解析出json本身的结构。比方说(因为使用格式化成文本在这个语句下面有点奇怪,所以就用结果集贴上来,有点乱,大家将就着)
declare @v nvarchar(600) = N'{"ID":1,"name":"张三","Chinese":90,"Math":80}'
select * from openjson(@v)
key value type
ID 1 2
name 张三 1
Chinese 90 2
Math 80 2
前面2个都好理解,第三个位置,type 。类型,在openjson 的解析里面是这样
0 null
1 string
2 int
3 bool
4 array
5 object
这样就不奇怪刚刚类型那个值的显示了,ID,Math ,Chinese都是整形,姓名是字符串,然后再来一个例子
declare @v nvarchar(600) = N'{"ID":true,"name":null,"Chinese":9.9,"Math":"hello","arr":[1,2,3,4],"obj":{"name":"test"}}'
select * from openjson(@v)
key value type
ID true 3
name NULL 0
Chinese 9.9 2
Math hello 1
arr [1,2,3,4] 4
obj {"name":"test"} 5
这里就可以看到,即使是9.9这样的类型,使用openjson 也是会认为是整形的,所以即使可以解析出来类型,但是也不要太相信它能给你带来准确的数据类型就对了。
有人可能问,那如果是一个json里面包含多个行对象,其实是可以用openjson with 的格式来解析的,那它怎么认定呢?比如说
declare @v nvarchar(600) = N'[{"ID":1,"name":"张三","Chinese":90,"Math":80},{"ID":2,"name":"李四","Chinese":75,"Math":90},{"ID":3,"name":"王五","Chinese":68,"Math":100},{"ID":4,"name":"赵六","Chinese":100}]'
使用openjson来直接解析,很明显得出,4个列都是Object类型,仅此而已。
一般情况下,用的就是这部分咯~嗯~这次就到这里,下篇再写
继续说一下2016里面的json功能(1)的更多相关文章
- 尝试一下sql server2016里面的json功能
前2天下载了一个2016的rc版本来玩一下,首先感觉是~开发者版本免费啦!!撒花!!!另外一个东西,sql server 2016能支持json 的解析和应用啦,虽然我不知道它的性能如何,先来一发测试 ...
- sql server2016里面的json功能 - 转
测试一下基本的,从查询结果里面构造一个json 的格式 create table t1(ID int identity,name nvarchar(50),Chinese int ,Math int) ...
- 安卓里面JSON处理和JAVA SE里面的JSON包
今天编译安卓项目遇到这个问题 com.android.dex.DexException: Multiple dex files define的解决办法 大致意思就是引用了 相同的包 在JAVA SE里 ...
- ASP.NET获取百度地图提供的API接口里面的JSON
思路:开始是想直接在前台获取,但是跨域访问还是有点难度,而且格式必须是josnp格式的,最后嫌麻烦,不得已放弃. 我做的ASP.NET 而这个有自带的解析类,直接引用就行了 先在后台获取到JOSN: ...
- 读取文件 读取项目里面的json
ClassPathResource resource = new ClassPathResource("properties/post2LazadaTest.json"); Fil ...
- 在package.json里面的script设置环境变量,区分开发及生产环境。注意mac与windows的设置方式不一样
在package.json里面的script设置环境变量,区分开发及生产环境. 注意mac与windows的设置方式不一样. "scripts": { "publish- ...
- SQL Server 2016 的JSON功能
测试一下基本的,从查询结果里面构造一个json 的格式 create table t1(ID int identity,name nvarchar(50),Chinese int ,Math int) ...
- 开启Windows8里面的Hyper-V虚拟机功能
首先了解下什么是Hyper-V?也就是虚拟化技术,允许终端用户在同一台机器上运行多个操作系统,支持32位和64位系统,可以直接在Windows 8上创建自己的虚拟机.开启Hyper-V虚拟机需要更多的 ...
- js中json法创建对象(json里面的:相当于js里面的=)
js中json法创建对象(json里面的:相当于js里面的=) 一.总结 json里面的:相当于js里面的= 4.json创建js对象解决命名冲突:多个人为同一个页面写js的话,命名冲突就有可能发生, ...
随机推荐
- jsp错误路径跳转设置
<error-page><error-code>400</error-code><location>/king.html</location> ...
- Discuz网站建站运营必备插件
Discuz界面功能完善,对开发者友好,拥有丰富的插件资源,能够高度定制属于自己风格的论坛服务.但是在拥有近四千个插件的Discuz应用中心,小白站长该如何挑选合适的插件来优化自己的网站呢? 楼主 ...
- Struts2框架的自定义类型转换器
前言:对于java的基本数据类型及一些系统类(如Date类.集合类),Struts2提供了内置类型转换功能,但是也有一定的限制.所以就演示出自定义类型转换器 一.应用于局部类型转换器 eg.用户登录出 ...
- 转【实战体验几种MySQLCluster方案】
实战体验几种MySQLCluster方案 1.背景 MySQL的cluster方案有很多官方和第三方的选择,选择多就是一种烦恼,因此,我们考虑MySQL数据库满足下三点需求,考察市面上可行的解决方案: ...
- angular源码分析:angular中各种常用函数,比较省代码的各种小技巧
angular的工具函数 在angular的API文档中,在最前面就是讲的就是angular的工具函数,下面列出来 angular.bind //用户将函数和对象绑定在一起,返回一个新的函数 angu ...
- C#各种数组直接的数据复制/转换
之前做Opengl程序,用的的C#的SharpGL这个库,里面有各种奇怪绑定的函数,比如原型为: void glInterleavedArrays(uint format, int stride, v ...
- ABAP 指針常用语法
1 .定义指針 :指針的定義主 要有以下語句 定義任意類型的指針,但是不具備欄位結構(僅僅是一個地址) FIELD-SYMBOLS <carrid> TYPE ANY. 參考數據庫表定義( ...
- SharePoint 2013 为站点配置基于主机标头的双域名
SharePoint的应用中,经常需要配置双域名,为不同的认证方式提供访问入口,下面简单介绍下,如何以主机标头的方式为SharePoint配置双域名: 配置基于主机标头的双域名 1.原本可以访问的测试 ...
- Urban Planning and Public Health - Reflection on Professor Webster's article in Urban Planning Forum
1. General review. Professor Webster published this article in Urban Planning Forum, one of the top ...
- ICSharpCode.SharpZipLib简单使用
胡乱做了个小例子,记录下来,以便后面复习. using System; using System.Collections.Generic; using System.Linq; using Syste ...