Страницы

Поиск по вопросам

четверг, 9 января 2020 г.

Получить значение по ключу из JSON строки (SQL Server 2014)

#sql #json #sql_server


Продолжение предыдущего вопроса 

Есть поле, которое хранит json текст. Внутри есть переменная id {"Id":25680,"Code":....
Нужно из json взять Id объекта и поместить значение в поле. Как вырезать значение Id?
Кол-во цифр разное.

Функция JSON_VALUE не поддерживается в SQL Server 2014
    


Ответы

Ответ 1



Можно через substring, если текст имеет одну и ту же структуру: create table table1 (json varchar (200)); insert into table1 values ('{"Id":25680,"Code":....') select substring (json,charindex (':',json)+1,charindex (',',json)-charindex (':',json)-1) from table1 Fiddle

Ответ 2



Извлечь заданый ключ (Id, Code или другой какой-то): DECLARE @t VARCHAR(2000) = '{"Id":25680,"Code":...,' ,@key VARCHAR(32) SET @key = 'Id' SELECT SUBSTRING( @t, PATINDEX('%"'+@key+'":%', @t) + LEN('"'+@key+'":'), CHARINDEX(',', @t, PATINDEX('%"'+@key+'":%', @t) + LEN('"'+@key+'":')) - (PATINDEX('%"'+@key+'":%', @t) + LEN('"'+@key+'":')) )

Комментариев нет:

Отправить комментарий