我的表格列中有这样的内容:
{"InputDirection":0,"Mask":"AA","FormatString":null,"AutoCompleteValue":null,
"Filtered":"0123456789","AutoComplete":false,"ReadOnly":true}
我想要做的是将 "Mask":"AA"
中的 A 更改为 N 并删除 "Filtered":"0123456789"
(如果存在)。掩码可以采用不同的形式,例如 A9A
、'AAAA` 等。
如果是在 C# 中,我可以自己通过将其解析为 JSON 等来完成,但我需要在 SQL 中完成。
我发现这篇文章展示了如何将 JSON
解析为 Table
。这给了我一个想法,我可以将每个字段解析为临时表并对其进行更改,然后将其转换回 JSON,以便更新我从中获取此 JSON 字段的实际字段。然而,这对于我和服务器来说都是一个麻烦的过程。
还有更好的想法吗?
最佳答案
您可以使用这个 LINK 。
然后使用以下代码
select * into #demo from
(Select * from parseJSON('{"InputDirection":0,"Mask":"AA","FormatString":null,"AutoCompleteValue":null,
"Filtered":"0123456789","AutoComplete":false,"ReadOnly":true}
')) a
select * from #demo
--- CHANGE THE DATA HERE AS REQUIRED
DECLARE @MyHierarchy JSONHierarchy;
INSERT INTO @myHierarchy
select * from #demo;
-- USE THIS VALUE AND UPDATE YOUR JSON COLUMN
SELECT dbo.ToJSON(@MyHierarchy)
drop table #demo
关于sql - 替换 SQL 中的 JSON 格式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16679908/