pau*_*guy 9 sql t-sql arrays sql-server-2016 json-query
我有一个SQL列,它有一个JSON数组:
{"names":["Joe","Fred","Sue"]}
Run Code Online (Sandbox Code Playgroud)
给定一个搜索字符串,我如何使用SQL在names数组中搜索匹配?我正在使用SQL 2016并查看了JSON_QUERY,但不知道如何在JSON数组上搜索匹配项.像下面这样的东西会很好.
SELECT *
FROM table
WHERE JSON_QUERY(column, '$.names') = 'Joe'
Run Code Online (Sandbox Code Playgroud)
Ser*_*lan 24
要在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'))
Run Code Online (Sandbox Code Playgroud)
或作为替代方案,人们可以使用它CROSS APPLY.
SELECT * FROM
@table
CROSS APPLY OPENJSON(Col,'$.names')
WHERE value ='Joe'
Run Code Online (Sandbox Code Playgroud)