测试一下基本的,从查询结果里面构造一个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小时内与您取得联系。