SQL Server怎么操作Json格式字段数据

网友投稿 422 2023-11-22

SQL Server怎么操作Json格式字段数据

今天小编给大家分享一下SQL Server怎么操作Json格式字段数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1 json存储

SQL Server怎么操作Json格式字段数据

在sqlserver 中存储json ,需要用字符串类型进行存储,一般用nvarchar()或 varchar()进行存储,不要用text进行存储,用text时候,json的函数不支持。

2 json操作

主要介绍5个函数:

(1)openJson:打开Json字符

(2)IsJson:判断一个字符串是不是合法的Json格式。是返回1,否返回0,null返回null。

(3)Json_Value:从Json字符串中提取值。

(4)Json_Query:Json字符串中提取对象或数组。

(5)Json_Modify:更新Json字符串中的属性值,并返回更新的Json字符串。

新建wm_json_demo 表:

CREATE TABLE demo_plus.dbo.wm_json_demo ( id int IDENTITY(1,1NOT NULL, json_detail varchar(maxNOT NULL, CONSTRAINT PK_wm_json_demo PRIMARY KEY (id) );

下面以wm_json_demo 为例,演示以上5个json操作相关的函数

INSERT INTO demo_plus.dbo.wm_json_demo (json_detail) VALUES({"key":3,"value1":10,"value2":[{"vv21":13,"vv22":103}],"value3":null}); INSERT INTOdemo_plus.dbo.wm_json_demo (json_detail)VALUES({"key":4,"value1":15,"value2":[{"vv21":13,"vv22":103}],"value3":"10"}); INSERT INTO demo_plus.dbo.wm_json_demo (json_detail) VALUES({"key":7,"value1":20,"value2":[{"vv21":13,"vv22":103}],"value3":"15"});

IsJson:判断一个字符串是不是合法的Json格式。是返回1,否返回0,null返回null。

SELECT IsJson(json_detail) asIsJsonfrom demo_plus.dbo.wm_json_demo

Json_Value:从Json字段中提取值

用法:Json_Value (cloumn_name,’$.json_field_name’) from table

Json_Query:Json字符串中提取对象或数组。

用法:Json_Query (cloumn_name,’$.json_field_name’) from table

SELECT JSON_VALUE(json_detail,$.keyas key, JSON_VALUE(json_detail,$.value1asvalue1, JSON_value(json_detail,$.value2as value2, JSON_QUERY(json_detail,$.value2asvalue2_query, JSON_VALUE(json_detail,$.value3as value3 from demo_plus.dbo.wm_json_demo;

Json_Modify:更新Json字符串中的属性值,并返回更新的Json字符串。

JSON_MODIFY(column_name, ‘$.json_field’, ‘change_info’);

SELECTJSON_MODIFY(json_detail,$.value1, 11as json_detail from demo_plus.dbo.wm_json_demo where JSON_VALUE(json_detail, $.key)= 7;

以上就是“SQL Server怎么操作Json格式字段数据”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:sql文件怎么导入数据库Navicat
下一篇:mysql中的find_in_set字符串查找函数如何使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~