微前端架构如何改变企业的开发模式与效率提升
422
2023-11-22
今天小编给大家分享一下SQL Server怎么操作Json格式字段数据的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
在sqlserver 中存储json ,需要用字符串类型进行存储,一般用nvarchar()或 varchar()进行存储,不要用text进行存储,用text时候,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,1) NOT NULL, json_detail varchar(max) NOT 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_demoJson_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,$.key) as key, JSON_VALUE(json_detail,$.value1) asvalue1, JSON_value(json_detail,$.value2) as value2, JSON_QUERY(json_detail,$.value2) asvalue2_query, JSON_VALUE(json_detail,$.value3) as 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, 11) as json_detail from demo_plus.dbo.wm_json_demo where JSON_VALUE(json_detail, $.key)= 7;以上就是“SQL Server怎么操作Json格式字段数据”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~