此查詢返回什麼?
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想要獲取的元素。
編輯#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')
會給你重視你的需要。
編輯#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