У меня есть требование выбрать 3-е число c значения из сообщения. Это число может иметь длину 1, 2, 4 и т. Д. c. Я использую PATINDEX для получения индекса числа, но не знаю, как заставить его искать 3-е число напрямую.
Сообщение:
'Successfully imported 6609 records and updated 0 records for a total of 6609 records into the table'
Запрос:
select (PATINDEX('%[0-9]%', 'Successfully imported 6609 records and updated 0 records for a total of 6609 records into the table')
Измененный запрос:
SELECT SUBSTRING
('Successfully imported 6609 records and updated 0 records for a total of 6609 records into the table .%' ,
PATINDEX('%total of%' ,'Successfully imported 6609 records and updated 0 records for a total of 6609 records into the table .%') + 9,
5)
Я получаю результат как 6609, который указан c только для этого сообщения, но если мое сообщение: «Успешно импортировано 6 записей и обновлено 0 записей, всего 6 записей в таблице». , то я не получаю ожидаемого результата.
Ожидаемый результат:
6609 -- 3rd numeral