Как разделить столбец SQL, являющийся номером строки строки с переменной длиной - PullRequest
0 голосов
/ 21 марта 2019

У меня есть столбец идентификатора, который использует буквы и цифры: A00055 или AI000075, например.Текстовые значения в порядке возрастания по коду ASCII, поэтому я собирался сделать что-то вроде этого:

CAST((COALESCE(ASCII(SUBSTRING([FaultID],1,1)),SUBSTRING([FaultID],2,(len([FaultID])))))AS bigint) as FaultID1

Однако потом я понял, что буквы могут иметь переменную длину 1-3 символа, так что это ошибкикак только я нажму значение с 2 буквами.Есть ли способ разбить строку по первому числовому значению?Или есть лучший способ решить эту проблему?

1 Ответ

0 голосов
/ 21 марта 2019

Полагаю, вы можете использовать PATINDEX (индекс шаблона) вместо CHARINDEX.

SELECT PATINDEX('%[0-9]%','MyString1111')

Это вернет индекс, основанный на 1, первого числового значения в строке, который затем можно использовать для разбиения строки.

Документация для PATINDEX: здесь .

...