JSON配列を含むSQL列を検索する方法 質問する

JSON配列を含むSQL列を検索する方法 質問する

単一の JSON 配列を持つ SQL 列があります。

    {"names":["Joe","Fred","Sue"]}

検索文字列が与えられた場合、SQL を使用して名前配列内の一致を検索するにはどうすればよいですか? SQL 2016 を使用しており、JSON_QUERY を確認しましたが、JSON 配列で一致を検索する方法がわかりません。以下のようなものがよいでしょう。

    SELECT *
    FROM table
    WHERE JSON_QUERY(column, '$.names') = 'Joe'

ベストアンサー1

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'

おすすめ記事