#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+'":')) )
Комментариев нет:
Отправить комментарий