我有以下JSON
DECLARE @json NVARCHAR(max) = '
{
"source": "one",
"dataSetId":"a3d5-14fda14",
"data": [
{
"FieldId": 10
}
]
}
'
并且需要将值解析为表。
我试过了:
-- meta
SELECT *
FROM OPENJSON(@json)
WITH ( source NVARCHAR(20)
,dataSetId NVARCHAR(50)
,FieldId INT '$.data.FieldId'
)
-- array
SELECT *
FROM OPENJSON(@json, '$.data')
WITH ( source NVARCHAR(20)
,dataSetId NVARCHAR(50)
,FieldId int '$.FieldId'
)
它可以获取source
和dataSetId
列或获取FieldId
列,但我仍然无法合并两个解决方案,以解析非数组和数组数据。< / p>
SELECT
应返回一个查询中的所有数据。
答案 0 :(得分:1)
这个问题有很多解决方案。其中一个是......
DECLARE @json NVARCHAR(max) = '
{
"source": "one",
"dataSetId":"a3d5-14fda14",
"data": [
{
"FieldId": 10
}
]
}'
SELECT A.* , B.*
FROM OPENJSON(@json)
WITH ( source NVARCHAR(20)
,dataSetId NVARCHAR(50)) A ,
OPENJSON(@json, '$.data')
WITH ( FieldId int '$.FieldId') B