Reputation: 4124
Let's say I have JSON in SQL Server:
[
{
"keyname": "keyname1",
"valuename": "somestring"
},
{
"keyname": "keyname2",
"valuename": "somestring"
},
{
"keyname": "keyname3",
"valuename": 100
}
]
Is it possible to search JSON by valuename e.g. "somestring" and return keyname and valuename.
I tried to use JSON_VALUE
and JSON_QUERY
:
SELECT JSON_VALUE(Mydata,'$[0].mydata') AS Mydata
FROM MyDataRows
Upvotes: 1
Views: 97
Reputation: 272386
You can use OPENJSON
with a WITH
clause:
SELECT *
FROM OPENJSON(N'[
{
"keyname": "keyname1",
"valuename": "somestring"
},
{
"keyname": "keyname2",
"valuename": "somestring"
},
{
"keyname": "keyname3",
"valuename": 100
}
]')
WITH (
keyname NVARCHAR(100) '$.keyname',
valuename NVARCHAR(100) '$.valuename'
)
WHERE valuename = 'somestring'
Upvotes: 2