第一个字符串是
www.abc.c/item/itemscode/012345678974-Thisisname
我想获得/
和_
之间的唯一部分,即只有012345678974
第二个是
abc.org.c/items/item_database/number_3_of_10-klsnfdsfjsd.txt
从这个字符串中,我只想从“ number_3_of ....”中获得3个。
我该怎么做。我尝试了许多解决方案,但在过去的48小时内无法做到
答案 0 :(得分:0)
有很多不同的方法可以实现这一目标。实现此目的的一种方法是使用Left()
,Reverse()
和Charindex()
函数。您需要在字符串中搜索模式,并根据此模式确定解决方案。试试这个:
--First string
DECLARE @string VARCHAR(255)= 'www.abc.c/item/itemscode/012345678974-Thisisname';
SELECT LEFT(REVERSE(LEFT(REVERSE(@string), CHARINDEX('/', REVERSE(@string))-1)), CHARINDEX('-', REVERSE(LEFT(REVERSE(@string), CHARINDEX('/', REVERSE(@string))-1)))-1);
--Second String
DECLARE @string2 VARCHAR(255)= 'abc.org.c/items/item_database/number_3_of_10-klsnfdsfjsd.txt';
SELECT REPLACE(REPLACE(LEFT(REVERSE(LEFT(REVERSE(@string2), CHARINDEX('/', REVERSE(@string2))-1)), CHARINDEX('-', REVERSE(LEFT(REVERSE(@string2), CHARINDEX('/', REVERSE(@string2))-1)))-1), 'NUMBER_', ''), '_OF_10', '');