我正在尝试编写一个 SQL 语句,它将解析一些 JSON 并仅返回 JSON 对象中的一个数组包含给定值的行。
示例 JSON:
Object 1:
{
"Key1": ["item1", "item2", "item3"]
}
Object 2:
{
"Key1": ["item1", "item3"]
}
我只想返回JSON_QUERY(object, '$.Key1').Contains("item2")为真的行(在本例中,对象 1)。
当然,tsql 中不存在这个神奇的函数 'Contains()',而且我找不到任何可以按照我的意愿执行的函数的文档。
编辑:我当前的解决方案(我不太喜欢并想替换它)检查字符串文字'"item1"'是否包含在 JSON_QUERY 返回的值中。我不喜欢这样,因为数组中的条目可能具有类似 的值'123123"item1"123123',然后条件将返回 true。