【问题标题】:SQL Server 2016 select where in json object arraySQL Server 2016 选择 json 对象数组中的位置
【发布时间】:2017-10-31 11:15:37
【问题描述】:

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

【问题讨论】:

    标签: inner-join sql-server-2016 json-query


    【解决方案1】:

    您可以使用此查询。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多