T-SQL OpenJson嵌套数组

时间:2019-03-12 10:13:33

标签: json tsql nested

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文件。

关于约翰

0 个答案:

没有答案