У меня есть две строки в моей базе данных SQL Server, и я хочу получить конкретные значения из них в запросе - PullRequest
0 голосов
/ 11 октября 2018

Первая строка -

www.abc.c/item/itemscode/012345678974-Thisisname

Я хочу получить единственную часть, которая находится между / и _, т.е. только 012345678974

Вторая -

abc.org.c/items/item_database/number_3_of_10-klsnfdsfjsd.txt

Из этой строки я хочу получить только 3 из "number_3_of ...."

Как я могу это сделать.Я пробовал много решений, но я не мог сделать это в течение более 48 часов

1 Ответ

0 голосов
/ 11 октября 2018

Есть много разных способов добиться этого.Одним из способов достижения этого является использование функций 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', '');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...