T-SQL的JSON阵列
问题描述:
读我有以下JSON
T-SQL的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
列,但我仍然无法合并这两个解决方案,来解析这两个非阵列和阵列的数据。
SELECT
应该返回一个查询中的所有数据。
答
这个问题有很多解决方案。其中之一是...
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
如果你试过那么你得到什么SQL错误。 – 2017-10-05 08:47:03
是的,我做过。你可以看到问题中的查询。没有错误。 ..它的工作原理,但不会在一个查询中返回来自JSON的所有数据。 – DNac
如果您尝试通过定义临时表并将结果存储到临时表(即#myResultTable)并将其传递给OPENJSON – 2017-10-05 10:26:17