Я столкнулся со следующей проблемой: у меня есть пара строк в SQL, и я пытаюсь извлечь из них лишь небольшую часть, но не могу заставить ее работать.
Примеры моих строк:
{"@odata.type":"#make.this.short","Id":0,"Value":"Stackoverflow"}
[{"@odata.type":"#Mmake.this.short","Id":1,"Value":"Stackoverflow1"},{"@odata.type":"#make.this.short","Id":2,"Value":"Stackoverflow2"}]
{"@odata.type":"#make.this.short","Claims":"i:0#.f|membership|name@email.nl","DisplayName":"Lastname F. (Firstname)","Email":"Name@email.nl","Picture":"https://picture.com/","Department":null,"JobTitle":null}
Теперь я пытаюсь написать хранимую процедуру и вернуть следующие значения:
Stackoverflow
Stackoverflow1, Stackoverflow2
и name@email.nl
Я пробовал работать с SUBSTRING, LEN, RIGHT, CHARINDEX и REVERSE, но не могу получить то, что мне нужно. Значение Value: конечно может иметь разную длину для каждой записи.
Моя идея заключалась в том, чтобы подсчитать общую строку (len string), затем получить первое «справа» и вычесть это из общей строки. Затем я бы попытался получить вторую строку и вычесть ее из первой. что осталось, это значение внутри, и я мог бы использовать подстроку.
Но это сработает только для первого, остальные совсем другие, и почему-то я даже не могу заставить первый делать то, что мне нравится. (Кажется, я не могу получить вторую "справа")
Надеюсь, этого достаточно, чтобы вы могли указать мне правильное направление, чтобы исправить эту проблему.
Спасибо