Если вы используете SQL Server 2016+, вам нужно использовать OPEN JSON () для анализа ввода JSON. Структура ввода JSON всегда важна, и в этом конкретном случае c вам необходимо использовать OPENSJON()
с явной схемой дважды:
JSON:
DEClARE @json nvarchar(max) = N'{
"data": [
{
"taggedEntityName": "Organization",
"taggedEntityId": [
145642,
145625
],
"index": 0
},
{
"taggedEntityName": "Job",
"taggedEntityId": [
221138
],
"index": 1
}
]
}'
Заявление:
SELECT j1.taggedEntityName, j2.taggedEntityId
FROM OPENJSON(@json, '$.data') WITH (
taggedEntityName varchar(50) '$.taggedEntityName',
taggedEntityId nvarchar(max) '$.taggedEntityId' AS JSON
) j1
CROSS APPLY OPENJSON(j1.taggedEntityId) WITH (
taggedEntityId int '$'
) j2
Результат:
taggedEntityName taggedEntityId
Organization 145642
Organization 145625
Job 221138