【发布时间】:2020-05-08 11:47:58
【问题描述】:
我遇到了以下问题,我在 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}
现在我正在尝试编写一个存储过程并取回以下值:
堆栈溢出
堆栈溢出1,堆栈溢出2
和姓名@email.nl
我尝试使用 SUBSTRING、LEN、RIGHT、CHARINDEX 和 REVERSE,但我似乎无法得到我需要的东西。 Value: 的值当然可以对每条记录有不同的长度。
我的想法是计算总字符串(len 字符串) 然后得到右边的第一个 " 并从总字符串中减去它。 然后我会尝试得到第二个“并从第一个中减去它。剩下的是里面的值,我可以使用一个子字符串。
但这仅适用于第一个,其他的则完全不同,不知何故,我什至无法成为第一个做我喜欢做的事。 (我似乎看不到右边的第二个“)
我希望这是足够的信息,所以你可以指出我正确的方向来解决这个问题。
谢谢你
【问题讨论】:
-
我去掉了mysql标签,因为你引用的函数是SQL Server函数。
标签: sql sql-server sql-server-2017