• 技术文章 >数据库 >SQL

    SQL Server解析/操作Json格式字段数据的方法实例

    WBOYWBOY2022-08-29 12:00:01转载1587
    本篇文章给大家带来了关于SQL server的相关知识,其中主要介绍了SQL SERVER没有自带的解析json函数,需要自建一个函数(表值函数),下面介绍关于SQL Server解析/操作Json格式字段数据的相关资料,希望对大家有帮助。

    php入门到就业线上直播课:进入学习

    推荐学习:《SQL教程

    1 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,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 INTO demo_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) as IsJson
    from
    	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,'$.key') as 'key',
    	JSON_VALUE(json_detail,'$.value1') as value1,
    	JSON_value(json_detail,'$.value2') as value2,
    	JSON_QUERY(json_detail,'$.value2') as value2_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’);

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

    推荐学习:《SQL教程

    以上就是SQL Server解析/操作Json格式字段数据的方法实例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除

    千万级数据并发解决方案(理论+实战):点击学习

    Mysql单表千万级数据量的查询优化与性能分析

    Mysql主从原理及其在高并发系统中的应用

    专题推荐:SQL
    上一篇:SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• MySQL日志专项整理之redo log和undo log• 一文搞定Mysql时区错误问题• mysql与sql server的语法有什么区别• mysql和myisam有什么区别• 归纳整理之MySQL基于GTID主从搭建
    1/1

    PHP中文网