SQL Сервер 2016: получить строку между двумя символами? - PullRequest
0 голосов
/ 13 марта 2020

У меня есть несколько таких записей: GUID-155_188.PNG

Мне нужно взять строку 155, конечно, это число переменное, поэтому может быть 1, 2, 3000 и т. Д. c.

Но синтаксис всегда один и тот же, между - и _.

Итак, как мне извлечь эту часть между этими двумя символами?

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Попробуйте это:

DECLARE @string VARCHAR(100) = 'GUID-15_188.PNG'
SELECT SUBSTRING(@string, CHARINDEX('-', @string) + 1, CHARINDEX('_', @string) - CHARINDEX('-', @string) - 1)
0 голосов
/ 13 марта 2020

Попробуйте это:

DECLARE @g varchar(1000) = 'GUID-155_188.PNG'
SELECT LEFT(RIGHT(@g, CHARINDEX('-', REVERSE(@g), 0) - 1), CHARINDEX('_', (RIGHT(@g, CHARINDEX('-', REVERSE(@g), 0) - 1)), 0) - 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...