このクエリは何を返しますか?
set @json = N'
["cars" : {
"VW":{
"name":"Volkswagen",
"country":"Germany"},
"GM":{
"name":"General Motors",
"country":"USA"},
"RR":{
"name":"Rolls Royce",
"country":"UK"}
}]';
select *
from OPENJSON(@json)
出力を共有できますか?
これは答えとしてお詫びしますが、コメントが長すぎるため、このクエリはOPが取得したい要素を見つけるのに役立ちます。
EDIT#1
この:
Declare @js nvarchar(4000) = N'{"cars" : {
"VW":{"name":"Volkswagen","country":"Germany"},
"GM":{"name":"General Motors","country":"USA"},
"RR":{"name":"Rolls Royce","country":"UK"}}}'
SELECT [key]
FROM OPENJSON (@js,'$.cars')
はあなたが必要な値が得られます。
EDIT#2
そして、あなたは、この値を参照することができます。
SELECT p1.[key],
p2.[key],
p2.[value]
FROM OPENJSON (@js, '$.cars') as p1
CROSS APPLY (
SELECT *
FROM OPENJSON ([value], '$')
) p2
WHERE p1.[key] = 'VW'
出力:
key key value
--- ------- ----------
VW name Volkswagen
VW country Germany
(2 row(s) returned)
これはどのようにして質問に答えるのに役立ちますか? – GSerg
SEDEがSQL Server 2016上にあるので、ここにアクセスできますhttps://data.stackexchange.com/stackoverflow/query/540682 –
@MartinSmith OPがキーのリスト( "VM"、 "GM" 、 "RR")。 – GSerg