Я пытаюсь написать оператор SQL, который будет анализировать некоторые JSON и возвращать только те строки, в которых один из массивов в объекте JSON содержит заданное значение.
Пример JSON:
Object 1:
{
"Key1": ["item1", "item2", "item3"]
}
Object 2:
{
"Key1": ["item1", "item3"]
}
Я бы хотел возвращать только те строки, где JSON_QUERY(object, '$.Key1').Contains("item2")
истинно (в данном примере, Объект 1).
Конечно, эта магическая функция 'Contains ()' не существует в tsql, и яне могу найти какую-либо документацию функции, которая работает так, как мне хотелось бы.
РЕДАКТИРОВАТЬ: Мое текущее решение (которое я не очень люблю и хотел бы заменить) проверяет, является ли строковый литерал '"item1"'
содержится в значении, возвращаемом JSON_QUERY.Мне это не нравится, потому что, возможно, запись в массиве может иметь значение, подобное '123123"item1"123123'
, и тогда условное выражение вернет true.