全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

sql server2016里面的json功能浅析

测试一下基本的,从查询结果里面构造一个json 的格式

create table t1(ID int identity,name nvarchar(50),Chinese int ,Math int)
insert into t1 values ('张三',90,80),('李四',75,90),('王五',68,100)
select * from t1
select * from t1 for json auto
--查询结果
ID     name                        Chinese   Math
----------- -------------------------------------------------- ----------- -----------
1      张三                         90     80
2      李四                         75     90
3      王五                         68     100
--json 格式
[{"ID":1,"name":"张三","Chinese":90,"Math":80},{"ID":2,"name":"李四","Chinese":75,"Math":90},{"ID":3,"name":"王五","Chinese":68,"Math":100}]

这个是默认模式下面使用json的查询结果。是不是十分清晰

然后我们再接再厉,第二波是这样纸的。假如我们要继续搞有层级关系的。我们还可以这样写。比方说把成绩放在一个叫points 的节点里面, 也是可以分层的

select ID,
    name,
    Chinese as [Points.Chinese],
    Math as [Points.Math]
  from t1 for json path
--结果json
[
{"ID":1,"name":"张三","Points":{"Chinese":90,"Math":80}},
{"ID":2,"name":"李四","Points":{"Chinese":75,"Math":90}},
{"ID":3,"name":"王五","Points":{"Chinese":68,"Math":100}}
]

他们的分数就放在了json 里面的,被一个point 包住了。

如果说我要在这个结果里面添加一个头来包住,当然,我可以使用每个列来个别名 [root.col] 来实现,然而就有点啰嗦了。所以我们可以使用这个root 的关键字来添加一个顶节点

select ID,
    name,
    Chinese as [Points.Chinese],
    Math as [Points.Math]
  from t1 for json path,root('root') 
--返回的json结果
{"root":[
  {"ID":1,"name":"张三","Points":{"Chinese":90,"Math":80}},  {"ID":2,"name":"李四","Points":{"Chinese":75,"Math":90}},{"ID":3,"name":"王五","Points":{"Chinese":68,"Math":100}}]} 

当然咯,查询嘛,录入数据总是难免遇到null值,在这方面,for json 是如何处理的呢? 我在测试表添加一条数据在来查询

insert into t1 values ('赵六',100,null)
select ID,
    name,
    Chinese as [Points.Chinese],
    Math as [Points.Math]
  from t1 
    where id in(3, 4)
  for json auto
--json的返回结果
[{"ID":3,"name":"王五","Points.Chinese":68,"Points.Math":100},{"ID":4,"name":"赵六","Points.Chinese":100}]

auto 模式下,如果是空值,将会忽略该属性。这样的话很容易就每一个集合返回的属性数量都不一来,这样不好看。所以应对这种情况,我们可以使用 incluede_null_values 关键字,即使是空值,也带出来

select ID,
    name,
    Chinese as [Points.Chinese],
    Math as [Points.Math]
  from t1 
    where id in(3, 4)
  for json auto, include_null_values
--json 的返回结果
[{"ID":3,"name":"王五","Points.Chinese":68,"Points.Math":100},{"ID":4,"name":"赵六","Points.Chinese":100,"Points.Math":null}]

使用了这个关键字,就可以把空值带出来,里面的值是Null 值

好,本次实验到此为止~然后我试下解析json 的语法之类的再分享~

感想就是其实语法应该跟xml类型的相差无几~但是数据库之前支持了xml 数据类型,然后json却只能通过字符串去转换解析。

以上所述是小编给大家介绍的sql server2016里面的json功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# sql  # server  # 2016  # json  # SQL Server之JSON 函数详解  # SQLServer中JSON文档型数据的查询问题解决  # 详解SQL Server 中 JSON_MODIFY 的使用  # SQL Server中JSON函数的用法详解  # 王五  # 李四  # 查询结果  # 放在  # 可以使用  # 小编  # 他们的  # 我要  # 我在  # 在这个  # 还可以  # 将会  # 在这  # 在此  # 是这样  # 相差无几  # 很容易  # 住了  # 我们可以  # 给大家 


相关文章: 建站之星收费标准详解:套餐费用及年费价格表一览  Java解压缩zip - 解压缩多个文件或文件夹实例  如何做静态网页,sublimetext3.0制作静态网页?  专业公司网站制作公司,用什么语言做企业网站比较好?  再谈Python中的字符串与字符编码(推荐)  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在IIS中配置站点IP、端口及主机头?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  建站之星云端配置指南:模板选择与SEO优化一键生成  深圳网站制作培训,深圳哪些招聘网站比较好?  完全自定义免费建站平台:主题模板在线生成一站式服务  ,如何利用word制作宣传手册?  如何正确下载安装西数主机建站助手?  用v-html解决Vue.js渲染中html标签不被解析的问题  网站制作服务平台,有什么网站可以发布本地服务信息?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  建站主机与服务器功能差异如何区分?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站主机如何安装配置?新手必看操作指南  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  装修招标网站设计制作流程,装修招标流程?  如何快速辨别茅台真假?关键步骤解析  制作表格网站有哪些,线上表格怎么弄?  韩国服务器如何优化跨境访问实现高效连接?    建站与域名管理如何高效结合?  如何通过VPS建站无需域名直接访问?  音乐网站服务器如何优化API响应速度?  如何在腾讯云服务器上快速搭建个人网站?  如何在阿里云通过域名搭建网站?  建站之星后台密码遗忘或太弱?如何重置与强化?  小型网站建站如何选择虚拟主机?  如何用AWS免费套餐快速搭建高效网站?  网站微信制作软件,如何制作微信链接?  油猴 教程,油猴搜脚本为什么会网页无法显示?  全景视频制作网站有哪些,全景图怎么做成网页?  建站之星伪静态规则如何设置?  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何通过.red域名打造高辨识度品牌网站?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  测试制作网站有哪些,测试性取向的权威测试或者网站?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站主机空间推荐 高性价比配置与快速部署方案解析  Python多线程使用规范_线程安全解析【教程】  python的本地网站制作,如何创建本地站点?  如何在阿里云购买域名并搭建网站?  如何用PHP快速搭建高效网站?分步指南  利用JavaScript实现拖拽改变元素大小  相册网站制作软件,图片上的网址怎么复制?  如何快速查询域名建站关键信息? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。