SQL?Server解析/操作Json格式字段數(shù)據(jù)的方法實(shí)例
1 json存儲(chǔ)
在sqlserver 中存儲(chǔ)json ,需要用字符串類型進(jìn)行存儲(chǔ),一般用nvarchar()或 varchar()進(jìn)行存儲(chǔ),不要用text進(jìn)行存儲(chǔ),用text時(shí)候,json的函數(shù)不支持。
2 json操作
主要介紹5個(gè)函數(shù):
(1)openJson:打開Json字符串
(2)IsJson:判斷一個(gè)字符串是不是合法的Json格式。是返回1,否返回0,null返回null。
(3)Json_Value:從Json字符串中提取值。
(4)Json_Query:Json字符串中提取對(duì)象或數(shù)組。
(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個(gè)json操作相關(guān)的函數(shù)
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:判斷一個(gè)字符串是不是合法的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字符串中提取對(duì)象或數(shù)組。
用法: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其他
這里附上官網(wǎng)地址,有興趣的小伙伴可以去看看:https://docs.microsoft.com/en-us/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver15
總結(jié)
到此這篇關(guān)于SQL Server解析/操作Json格式字段數(shù)據(jù)的文章就介紹到這了,更多相關(guān)SQLServer解析操作Json內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使SQL用戶只能看到自己擁有權(quán)限的庫(kù)(圖文教程)
使SQL用戶只能看到自己擁有權(quán)限的庫(kù),想實(shí)現(xiàn)這一點(diǎn)并不難,本文以SQL Server 2012 為例為大家詳細(xì)介紹,感興趣的朋友可以參考下2012-12-12
SQL Server附加數(shù)據(jù)庫(kù)報(bào)錯(cuò)無(wú)法打開物理文件,操作系統(tǒng)錯(cuò)誤5的圖文解決教程
sqlserver附加數(shù)據(jù)時(shí),提示無(wú)法打開物理文件,操作系統(tǒng)錯(cuò)誤5什么原因呢?今天小編給大家分享SQL Server附加數(shù)據(jù)庫(kù)報(bào)錯(cuò)無(wú)法打開物理文件,操作系統(tǒng)錯(cuò)誤5的圖文解決教程,一起看看吧2016-12-12
數(shù)據(jù)庫(kù)計(jì)算時(shí)間差的三種函數(shù)和方法實(shí)例代碼
在日常工作中經(jīng)常會(huì)需要計(jì)算兩個(gè)日期的時(shí)間差,這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫(kù)計(jì)算時(shí)間差的三種函數(shù)和方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
關(guān)于存儲(chǔ)過程的編寫的一些體會(huì)
下面我來介紹下存儲(chǔ)過程的編寫數(shù)據(jù)庫(kù)存儲(chǔ)過程的實(shí)質(zhì)就是部署在數(shù)據(jù)庫(kù)端的一組定義代碼以及SQL2010-09-09

