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

У меня есть столбец с такими данными, как:

401-305-3069703-1---------------------------------------------------------
1-1499964-305-395---------------------------------------------------------
1-14995964-4405-395---------------------------------------------------------
....

Как я могу удалить все тире и любой символ после последнего числа, например:

401-305-3069703-1
1-1499964-305-395
1-14995964-4405-395

1 Ответ

4 голосов
/ 28 апреля 2019

Вы можете попробовать выполнить следующие действия, используя PATINDEX и REVERSE

SELECT LEFT(@str, LEN(@str) - PATINDEX('%[0-9]%', REVERSE(@str)) +1)

Демонстрация онлайн

Здесь PATINDEX используется для поиска последнего вхождения любого числа с использованием шаблона с подстановочными знаками, поскольку существует несколько чисел, и мы хотим найти индекс последнего числа, поэтому мы обращаем его, используя REVERSE перед применением PATINDEX.

Как только индекс найден, используя LEFT, мы получаем подстроку из текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...