Удалить начальный 0 и буквенно-цифровое значение из строки - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть значения в столбце, т. Е. A1234, B0045, P0123 Мне нужно удалить из строки символы и ведущие 0.

Я попробовал несколько вещей, я создал функцию для обработки этого и в функцииЯ использую регулярное выражение.

PATINDEX('%[^0-9]%', @strText)

Я хочу, чтобы результаты сохраняли столбец, как показано ниже

A1234 -> 1234
B0045 -> 45 
P0123 -> 123

Пожалуйста, предложите

Ответы [ 2 ]

2 голосов
/ 08 ноября 2019

Ваш шаблон неверен. Попробуйте это:

DECLARE @strText VARCHAR(20) = 'B0045';
SELECT SUBSTRING(@strText, PATINDEX('%[1-9]%', @strText), LEN(@strText)) AS result

См. Демоверсию . Если вы хотите обновить столбец:

UPDATE tablename
SET col = SUBSTRING(col, PATINDEX('%[1-9]%', col), LEN(col))
1 голос
/ 08 ноября 2019

Другой способ:

DECLARE @strText VARCHAR(20) = 'ABC0045';
SELECT STUFF(@strText,1,PATINDEX('%[1-9]%', @strText)-1,'')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...