SQL Server 2016 select 其中 json 对象数组

SQL Server 2016 select where in json object array

我有一个 table [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'))

您可以使用此查询。

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