SQL Server中JSON 函数的作用是什么

62次阅读
没有评论

共计 2287 个字符,预计需要花费 6 分钟才能阅读完成。

这期内容当中丸趣 TV 小编将会给大家带来有关 SQL Server 中 JSON 函数的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

2.1 JSON 函数

使用本节中页面中描述的功能来验证或更改 JSON 文本或提取简单或复杂的值。

有关在 SQL Server 中内置 JSON 支持的更多信息,请参阅 JSON 数据(SQL Server)。

2.2 ISJSON

测试字符串是否包含有效的 JSON。

2.2.1 例子

2.3 JSON_VALUE

从 JSON 字符串中提取标量值。

要从 JSON 字符串而不是标量值中提取对象或数组,请参阅 JSON_QUERY(Transact-SQL)。有关 JSON_VALUE 和 JSON_QUERY 之间的差异的信息,请参阅比较 JSON_VALUE 和 JSON_QUERY。

2.4 JSON_QUERY

从 JSON 字符串中提取对象或数组。

要从 JSON 字符串而不是对象或数组中提取标量值,请参阅 JSON_VALUE(Transact-SQL)。有关 JSON_VALUE 和 JSON_QUERY 之间的差异的信息,请参阅比较 JSON_VALUE 和 JSON_QUERY。

2.5 JSON_MODIFY

更新 JSON 字符串中的属性值,并返回更新的 JSON 字符串。

小结

3 参考文献

【01】https://docs.microsoft.com/zh-cn/sql/t-sql/language-elements/expressions-transact-sql

4 版权

感谢您的阅读,若有不足之处,欢迎指教,共同学习、共同进步。

以下是一些补充

下面是我们熟悉的 SELECT 及输出格式,后面对 JSON 的演示基于此 SQL:

2、FOR JSON AUTO,Root():为 JOSN 加上根节点若要为 FOR JSON 加上 Root Key,可以用 ROOT 选项来自定义 ROOT 节点的名称:

3、FOR JSON PATH 输出:可通过列别名来定义 JSON 对象的层次结构若要自定义输出 JSON 格式的结构时,必须使用 JSONPATH。

FOR JSON Auto,自动按照查询语句中使用的表结构来创建嵌套的 JSON 子数组,类似于 For Xml Auto 特性。 FOR JSON Path,通过列名或者列别名来定义 JSON 对象的层次结构,列别名中可以包含“.”,JSON 的成员层次结构将会与别名中的层次结构保持一致。

这个特性非常类似于早期 SQL Server 版本中的 For Xml Path 子句,可以使用斜线来定义 xml 的层次结构。

4、FOR JSON PATH+ROOT 输出:为 JOSN 加上根节点

5、INCLUDE_NULL_VALUES:值 null 的字段需要显示出现。为 NULL 的数据在输出 JSON 时,会被忽略,若想要让 NULL 的字段也显示出来,可以加上选项 INCLUDE_NULL_VALUES,该选项也适用于 AUTO。

6、列的别名,可以增加带有层级关系的节点。比如下面的 SQL,增加了一个“SN”节点,把栏位 SERNUM 和 CLIMAT 放在里面:

二、解析 JSON 格式的数据

1、使用 OPENJSON() 函数:

2、通过 WITH 选项,自定义输出列:

三、JSON 函数

declare @param nvarchar(max);set @param = N {  info :{  type :1,  address :{  town : Bristol ,  county : Avon ,  country : England  },  tags :[Sport ,  Water polo] },  type : Basic  }

1、ISJSON:测试字符串是否包含有效 JSON。

print iif(isjson(@param) 0, OK , NO

返回:OK

2、JSON_VALUE:从 JSON 字符串中提取标量值。

print json_value(@param, $.info.address.town print json_value(@param, $.info.tags[1]

返回:Bristol,Water polo

3、JSON_QUERY:从 JSON 字符串中提取对象或数组。

print json_query(@param, $.info

{  type :1,  address :{  town : Bristol ,  county : Avon ,  country : England  },  tags :[Sport ,  Water polo] }

4、JSON_MODIFY : 更新 JSON 字符串中属性的值,并返回已更新的 JSON 字符串。

print json_modify(@param, $.info.address.town , London

返回:

{  info :{  type :1,  address :{  town : London ,  county : Avon ,  country : England  },  tags :[Sport ,  Water polo] },  type : Basic  }

四、注意事项

SQL2016 中的新增的内置 JSON 进行了简单介绍,主要有如下要点:

JSON 能在 SQLServer2016 中高效的使用,但是 JSON 并不是原生数据类型;   如果使用 JSON 格式必须为输出结果是表达式的提供别名;  JSON_VALUE 和 JSON_QUERY 函数转移和获取 Varchar 格式的数据,因此必须将数据转译成你需要的类型。  在计算列的帮助下查询 JSON 可以使用索引进行优化。

上述就是丸趣 TV 小编为大家分享的 SQL Server 中 JSON 函数的作用是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计2287字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)