T-Sql Извлечь номер заказа в строке

Я просто пытаюсь вернуть номер заказа из строки, такой как перечисленная ниже. Я попытался charindex с левой и правой и подстроки безрезультатно. Используя фактические данные, номер заказа может быть от 9 до 12 символов.

Declare @string varchar(max) = 'Your order number for this purchase is 012345678 and we appreciate your business'

Любая помощь очень ценится.

Заранее спасибо, М.Буттер

1 ответ

PATINDEX может использоваться для поиска по регулярному выражению для поиска номера заказа

%[0-9]%

как только индекс найден, SUBSTRING можно использовать для получения номера заказа

declare @var varchar(max) = 'Your order number for this purchase is 012345678 and we appreciate your business'

declare @sub varchar(max)
select @sub=SUBSTRING(@var,patindex('%[0-9]%', @var), len(@var))

SELECT SUBSTRING(@sub, 0, charindex(' ', @sub))  
Другие вопросы по тегам