我有这个JSON字符串:
[
{
"Name": "TGName",
"Value": ""
},
{
"Name": "ISD",
"Value": "{\"WC\":{\"IL\":\"false\",\"SCB\":\"false\"},\"RC\":[{\"PrimaryKeys\":\"\",\"BackupMode\":\"NONE\"}],\"SIData\":{\"builderId\":\"4567\",\"row\":{\"Category\":\"Epr Oxygen\",\"EP_Key\":\"5678\"}}}"
}
]
在本JSON中,"类别"键的值需要从"EPR氧气"更新为"阻尼器".
我编写了这个查询,以从JSON上方获取值=EPR OOORT,并获得了该值:
CREATE TABLE SomeTempAVI (input nvarchar(max))
DECLARE @inputWiCate nvarchar(max)='[
{
"Name": "TGName",
"Value": ""
},
{
"Name": "ISD",
"Value": "{\"WC\":{\"IL\":\"false\",\"SCB\":\"false\"},\"RC\":[{\"PrimaryKeys\":\"\",\"BackupMode\":\"NONE\"}],\"SIData\":{\"builderId\":\"4567\",\"row\":{\"Category\":\"Epr Oxygen\",\"EP_Key\":\"5678\"}}}"
}
]'
INSERT INTO SomeTempAVI
SELECT VALUE
FROM OPENJSON (@inputWiCate)
WITH (Name nvarchar(100), Value nvarchar(max))
WHERE name = 'ISD'
DECLARE @inputValue nvarchar(max)
SELECT @inputValue = Category
FROM OPENJSON ((SELECT TOP 1 input FROM SomeTempAVI))
WITH (SIData NVARCHAR(MAX) AS JSON) a
CROSS APPLY OPENJSON(a.SIData)
WITH (row NVARCHAR(MAX) AS JSON) b
CROSS APPLY OPENJSON(b.row)
WITH (Category NVARCHAR(MAX) '$.Category') c
PRINT @inputValue
DROP TABLE SomeTempAVI
但我不知道如何将该值更新为"Damper".
有没有人能帮我一下?