Iam борется со следующей структурой JSOn
Declare @Json Nvarchar(max)
Set @Json = '
{
"entities": [
{
"Fields": [
{
"Name": "test-id",
"values": [
{
"value": "1851"
}
]
},
{
"Name": "test-name",
"values": [
{
"value": "01_DUMMY"
}
]
}
],
"Type": "run",
"children-count": 0
},
{
"Fields": [
{
"Name": "test-id",
"values": [
{
"value": "1852"
}
]
},
{
"Name": "test-name",
"values": [
{
"value": "02_DUMMY"
}
]
}
],
"Type": "run",
"children-count": 0
}
],
"TotalResults": 2
}'
Мой вывод должен выглядеть следующим образом:
test-id|test-name|Type|Children-count
1851 |01_DUMMY |run |0
1852 |02_DUMMY |run |0
Я пытался использовать примеры, опубликованные здесь, но ни один не соответствует моим потребностям.
Моим ближайшим помощником был этот синтаксис T-SQL
Select
*
From OPENJSON (@JSON,N'$.entities') E
CROSS APPLY OPENJSON (E.[value]) F
CROSS APPLY OPENJSON (F.[value],'$') V where F.type = 4
Моей следующей идеей было использовать этот SQL-код для открытия следующего вложенного массива, но я всегда получаю сообщение об ошибке (
Ошибка поиска - ошибка базы данных SQL Server: неверный синтаксис рядом с
Ключевое слово "КРЕСТ".
)
Select
*
From OPENJSON (@JSON,N'$.entities') E
CROSS APPLY OPENJSON (E.[value]) F
CROSS APPLY OPENJSON (F.[value]) V where F.type = 4
CROSS APPLY OPENJSON (V.[value]) N
Я не уверен, как добраться ближе к нужному мне выводу.
Если честно, я только начал с T-SQL и никогда раньше не работал с JSON Files.
С уважением, Иоганн