Sql Server ищет весь документ Json для значения

У меня в таблице несколько тысяч строк (SQL Server 2016).

В одном из столбцов хранятся документы JSON (NVARCHAR(max)).

Документы JSON довольно сложны с точки зрения вложенности и т. д., а также они могут сильно отличаться друг от друга.

Моя цель - найти в каждом документе определенное совпадение. Скажите: «MagicNo»: «999000».

Итак, если документ имеет свойство «MagicNo» и значение равно 999000, то это совпадение.

Я знаю, что вы можете перемещаться по документу, используя JSON_VALUE $., за которым следует путь, но поскольку эти документы могут сильно различаться, свойство «MagicNo» может появляться почти везде в документе (много вложений). Так что xpathing здесь не может быть и речи.

Есть ли какой-то подстановочный знак, который я мог бы использовать с JSON_VALUE, чтобы сказать, искать весь документ и возвращать его, если совпадение найдено?

Простой

like '%999000%' 

а также

CONTAINS 

поиск по столбцу VARCHAR здесь невозможен из-за низкой производительности.

Какие-нибудь мысли?

Спасибо.


person tom33pr    schedule 01.03.2018    source источник
comment
Возможный дубликат Можно ли использовать подстановочные знаки и диапазоны с JSON_VALUE?   -  person Paul Karam    schedule 01.03.2018
comment
Низкая производительность на нескольких тысячах строк? Сколько времени это занимает? Я бы хотел, чтобы поиск по необработанному тексту был бы быстрее, чем измельчение, а затем поиск.   -  person Nick.McDermaid    schedule 01.03.2018
comment
Нет, это не дубликат. В другом ответе есть подстановочный знак, установленный для определенного массива, и я ищу общий подстановочный знак, который позволит пройти через весь документ.   -  person tom33pr    schedule 01.03.2018
comment
Ник - это занимает до 10 секунд. Слишком долго для того, что мне нужно.   -  person tom33pr    schedule 01.03.2018