全网整合营销服务商

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

免费咨询热线: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函数的用法详解  # 王五  # 李四  # 查询结果  # 放在  # 可以使用  # 小编  # 他们的  # 我要  # 我在  # 在这个  # 还可以  # 将会  # 在这  # 在此  # 是这样  # 相差无几  # 很容易  # 住了  # 我们可以  # 给大家 


相关文章: 广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在IIS管理器中快速创建并配置网站?  建站之星好吗?新手能否轻松上手建站?  如何快速打造个性化非模板自助建站?  大连网站制作公司哪家好一点,大连买房网站哪个好?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  常州自助建站费用包含哪些项目?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  建站之星会员如何解锁更多建站功能?  如何快速建站并高效导出源代码?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  全景视频制作网站有哪些,全景图怎么做成网页?  如何高效完成独享虚拟主机建站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何在IIS中新建站点并配置端口与物理路径?  韩国服务器如何优化跨境访问实现高效连接?  建站之星如何助力企业快速打造五合一网站?  如何在Windows环境下新建FTP站点并设置权限?  南京网站制作费用,南京远驱官方网站?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何设计高效校园网站?  ,购物网站怎么盈利呢?  如何用PHP快速搭建CMS系统?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何用低价快速搭建高质量网站?  北京网站制作的公司有哪些,北京白云观官方网站?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  网站制作企业,网站的banner和导航栏是指什么?  建站之星免费版是否永久可用?  怎么将XML数据可视化 D3.js加载XML  如何在建站之星网店版论坛获取技术支持?  如何用景安虚拟主机手机版绑定域名建站?  ,在苏州找工作,上哪个网站比较好?  如何快速使用云服务器搭建个人网站?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  电商网站制作公司有哪些,1688网是什么意思?  完全自定义免费建站平台:主题模板在线生成一站式服务  网站制作公司排行榜,抖音怎样做个人官方网站  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  如何在IIS中新建站点并解决端口绑定冲突?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  制作宣传网站的软件,小红书可以宣传网站吗?  制作公司内部网站有哪些,内网如何建网站?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略 

您的项目需求

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