Sqlserver Json 数组操作 Json_Modify
SELECT A.ID,'['+STRING_AGG( JSON_MODIFY(T_ShopCart_Append3.value,'$.MerchantsID',CAST(JSON_VALUE(T_ShopCart_Append3.value,'$.MerchantsID') as bigint)+100000),',')+']' as jsonAppend3 FROM T_ShopCart A CROSS APPLY OPENJSON(A.Append3,'$') T_ShopCart_Append3 WHERE OrderNo IN (select OrderNo from T_Order WHERE OrderType='体检订单') GROUP BY A.ID
通过OpenJson 和 Cross Apply 达到获取每条数据的Json数组数据并依靠OpneJson拆分数组为单个对象 在对单个对象进行Json_Modify 修改操作 最终使用String_Agg 函数配合 group by 合并为新的修改后的数组
原效果
修改后效果
达成了 MerchantdID 增大的效果
DECLARE @JsonStr nvarchar(max) SELECT @JsonStr='[ { "imageurl":"/backuploads/images/JGImg/kfc.png", "RedirectUrl":"/365/index_kfc.html" }, { "imageurl":"/backuploads/images/JGImg/rxcoffe.png", "RedirectUrl":"/365/index_rx.html" }, { "imageurl":"/backuploads/images/JGImg/mdl.png", "RedirectUrl":"/365/index_mdl.html" } ]' SELECT '['+STRING_AGG( JSON_MODIFY(value,'$.imageurl','http://'+JSON_VALUE(value,'$.imageurl')),',') +']' FROM OPENJSON(@JsonStr,'$')