代码之家  ›  专栏  ›  技术社区  ›  Max

SQL Server 2016选择json对象数组中的位置

  •  2
  • Max  · 技术社区  · 7 年前

    我有一个表[JsonTable],列[JsonData]保存json字符串,

    JsonData类:

    {
       "Content": [
          {
             "ContentId": "123",
             "Type": 1
          },
          {
             "ContentId": "456",
             "Type": 2
          }
       ]
    }
    

    [
         {
            "ContentId": "123",
            "Type": 1
         },
         {
            "ContentId": "456",
            "Type": 2
         }
    ]
    

    我怎样才能像

    SELECT* FROM [Content] AS C
    INNER JOIN [JsonTable] AS J ON C.[Id] IN (SELECT value FROM OPENJSON(J.[JsonData],'$.Content.ContentId'))
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Serkan Arslan    7 年前

    您可以使用此查询。

    SELECT * FROM [Content] AS C
    INNER JOIN [JsonTable] AS J ON C.[Id] IN (SELECT JSON_VALUE(value,'$.ContentId') 
                                              FROM OPENJSON(J.[JsonData],'$.Content'))