我有一个包含单个 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'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)