単一のJSON配列を持つSQL列があります。
{"names":["Joe","Fred","Sue"]}
検索文字列が与えられた場合、SQLを使用して名前の配列内の一致を検索するにはどうすればよいですか?私はSQL 2016を使用していて、JSON_QUERYを見てきましたが、JSON配列の一致を検索する方法がわかりません。以下のようなものがいいでしょう。
SELECT *
FROM table
WHERE JSON_QUERY(column, '$.names') = 'Joe'
JSON配列で検索を行うには、OPENJSON
を使用する必要があります
DECLARE @table TABLE (Col NVARCHAR(MAX))
INSERT INTO @table VALUES ('{"names":["Joe","Fred","Sue"]}')
SELECT * FROM @table
WHERE 'Joe' IN ( SELECT value FROM OPENJSON(Col,'$.names'))
あるいは、CROSS APPLY
と一緒に使用することもできます。
SELECT * FROM
@table
CROSS APPLY OPENJSON(Col,'$.names')
WHERE value ='Joe'