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代码打开下一个嵌套数组,但iam总是收到错误消息msg(
查找错误-SQL Server数据库错误:附近的语法不正确 关键字“ CROSS”。
)
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文件。
关于约翰