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