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

 更新时间:2022年08月29日 09:43:48   作者:miaoao611  
SQL SERVER没有自带的解析json函数,需要自建一个函数(表值函数),下面这篇文章主要给大家介绍了关于SQL Server解析/操作Json格式字段数据的相关资料,需要的朋友可以参考下

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;

3其他

这里附上官网地址,有兴趣的小伙伴可以去看看:https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15

总结

到此这篇关于SQL Server解析/操作Json格式字段数据的文章就介绍到这了,更多相关SQLServer解析操作Json内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MS SQL Server数据库清理错误日志的方法

    MS SQL Server数据库清理错误日志的方法

    SQL服务器磁盘空间爆满导致数据库无法访问。远程到服务器上,发现原来是SQL错误日志文件惹的祸,数据库在1秒内产生上100M大小的日志,没多长时间就将磁盘空间堵满了,下面说说解决方案
    2013-11-11
  • SQL Server死锁问题的排查和解决方法

    SQL Server死锁问题的排查和解决方法

    SQL Server死锁是指两个或多个数据库操作进程在同时互相持有对方所需的资源,导致彼此无法继续执行下去的情况,本文将给大家介绍SQL Server中怎么排查死锁问题以及解决方法,需要的朋友可以参考下
    2024-05-05
  • SQL Server 公用表表达式(CTE)实现递归的方法

    SQL Server 公用表表达式(CTE)实现递归的方法

    这篇文章主要介绍了SQL Server 公用表表达式(CTE)实现递归的方法,需要的朋友可以参考下
    2017-05-05
  • SQL Server的触发器详解

    SQL Server的触发器详解

    这篇文章主要为大家介绍了SQL Server的触发器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • SQL语句执行超时引发网站首页访问故障问题

    SQL语句执行超时引发网站首页访问故障问题

    由于获取网站首页列表的 SQL 语句出现突发的查询超时问题,造成访问网站首页时出现 500 错误,在故障期间记录了大量错误,小编给大家分享到脚本之家平台,感兴趣的朋友一起看看吧
    2020-02-02
  • SQL SERVER 删除重复内容行

    SQL SERVER 删除重复内容行

    刚解决的小问题,之前也解决过类似的问题,但这次还设计到用SQL语句加一列,平时不常用这种命令,还是记录一下吧。
    2009-08-08
  • 安装sqlserver2022提示缺少msodbcsql.msi错误消息的解决

    安装sqlserver2022提示缺少msodbcsql.msi错误消息的解决

    本文主要介绍了安装sqlserver2022提示缺少msodbcsql.msi错误消息,msoledbsql.msi文件是Microsoft OLE DB Provider for SQL Server的安装文件,下面就来介绍一下解决方法
    2024-05-05
  • MSSQL  附加数据库提示“错误 823”数据恢复实操

    MSSQL  附加数据库提示“错误 823”数据恢复实操

    这篇文章主要介绍了MSSQL 2000 附加数据库提示“错误 823”数据恢复实操,报错823一般数据库的物理页面出现了损坏或者校验值损坏导致数据库页面无法被识别还有异常断电导致的文件系统损坏,数据库页面丢失,下面针对错误 823对数据进行恢复,需要的朋友可以参考一下
    2022-03-03
  • SQL server配置ODBC数据源(本地和服务器)详细步骤

    SQL server配置ODBC数据源(本地和服务器)详细步骤

    ODBC是open database connect的缩写,意思是开放式数据库连接,下面这篇文章主要给大家介绍了关于SQL server配置ODBC数据源(本地和服务器)的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • SQL中DATEADD和DATEDIFF的用法示例介绍

    SQL中DATEADD和DATEDIFF的用法示例介绍

    这篇文章主要介绍了SQL中DATEADD和DATEDIFF的用法,需要的朋友可以参考下
    2014-07-07

最新评论