ranio Ответов: 1

Как проверить, что данные в строке json существуют или не существуют в таблице ?


Я хочу проверить, существуют ли данные в строке json или нет в таблице .
Я передаю строку json, которая содержит ссылку no: я использую Sql server 2008.

строка json выглядит следующим образом:
{"Параметры login_id":"Алекс.чайник","Имя_пользователя":"Самуэль Джейкоб","Email_Id":"Самуил.Jacob@nestgroup.net","Mode":"M","Corporate_ID":"NeST","Establishment_ID":"12345678911830098344779998855552331","Reference_No":"IB120219100105"}'

Что я уже пробовал:

Попробовал как показано ниже:
declare @ReferenceNo varchar(max) ='IB120219100105'
set @ReferenceNo='{"Login_Id":"alex.maker","User_Name":"Samuel Jacob","Email_Id":"Samuel.Jacob@nestgroup.net","Mode":"M","Corporate_ID":"NeST","Establishment_ID":"12345678911830098344779998855552331","Reference_No":"IB120219100105"}'

SELECT * FROM User_Sync_Log WHERE  
SyncLogRequest LIKE   '%Reference_No": "%'+@ReferenceNo+'"%'

Но никаких данных не поступало

Kornfeld Eliyahu Peter

Это не проверка (это была бы проверка синтаксиса), а фактическое использование данных из SQL...
Какая версия SQL у вас есть?

ranio

sql server 2008

Richard Deeming

Вы уверены, что у вас есть запись в вашей таблице, где SyncLogRequest столбец соответствует шаблону:

'%Reference_No": "%{"Login_Id":"alex.maker","User_Name":"Samuel Jacob","Email_Id":"Samuel.Jacob@nestgroup.net","Mode":"M","Corporate_ID":"NeST","Establishment_ID":"12345678911830098344779998855552331","Reference_No":"IB120219100105"}"%


NB: Вы переписали текст @ReferenceNo переменная сразу же после ее объявления. Я не думаю, что ты собирался это делать.

1 Ответов

Рейтинг:
0

Kornfeld Eliyahu Peter

До 2016 года нет ничего встроенного, что вы могли бы использовать... Вы должны написать свои собственные функции синтаксического анализа JSON в SQL...
Здесь есть хороший образец для начала:
Использование строк JSON в SQL Server - простой разговор[^]