だから基本的に、あなたはあなたのJSON構造内tags
の配列を比較する必要があります。タグの順序が不適切な場合は、tags
配列を表の結果セットに変換し、標準where value in (select...
SQL節を使用できます。
最初のものは、SQL結果セットにタグを変換することです:あなたが持っているものに対してそれを比較する必要が..then
SELECT TagsData.[value]
FROM sample_table T CROSS APPLY OPENJSON (T.Column2, '$.info.tags') AS TagsData
。例えば。私はローカルで使用しているテストの目的のためにJSON文字列を宣言:それはColumn2
内に含まれないある場合
DECLARE @json NVARCHAR(4000) = N'
{
"info":{"type":1,"address": {"town":"Bristol","county":"Avon","country":"England"},
"tags":["Water polo", "Sport"]},"type":"Basic"
}';
SELECT [value]
FROM OPENJSON(@json,'$.info.tags')
は
..andテスト(["Water polo", "Sport"]
の変更順序に注意してください):
DECLARE @json NVARCHAR(4000) = N'
{
"info":{"type":1,"address": {"town":"Bristol","county":"Avon","country":"England"},
"tags":["Water polo", "Sport"]},"type":"Basic"
}';
SELECT [value]
FROM OPENJSON(@json,'$.info.tags')
where [value] not in
(
SELECT TagsData.[value]
FROM TestTable T CROSS APPLY OPENJSON (T.Column2, '$.info.tags') AS TagsData
)
を
結果セットが空の場合、配列は同じで、一致します(順序に関係なく)。結果セットにデータが含まれている場合は、2つのJSON配列の実際の違いを表します。
あなたはこれを詳しく説明できますか?["Water polo"、 "Sport"] ' – TheGameiswar
を確認する必要がある場合はどうすれば一致しますか?これはあなたが探しているものだと思います:[SQLのJSON配列へのクエリ2016](https://stackoverflow.com/questions/44051567/json-functions-in-sql-server-2016/44051859#44051859) – user7593937