Выберите указанные c данные после определенного десятичного числа - PullRequest
0 голосов
/ 02 августа 2020

У меня есть столбец, содержащий информацию о версии в таком формате:

20.6.4.4200
10.28.30.2678
22.8.34.1200

Я хочу выбирать только значения после последнего десятичного знака, например:

4200
2678
1200

What это лучший способ сделать это или требуется Regex?

Ответы [ 2 ]

1 голос
/ 02 августа 2020

На SQL сервере с плохой поддержкой регулярных выражений вы можете использовать строковые функции следующим образом:

right(val, charindex('.', reverse(val)) - 1)

Идея состоит в том, чтобы получить позицию последней точки в строке, считая от конец строки, затем извлеките соответствующую часть строки с помощью right().

Демонстрация на DB Fiddle :

select val, right(val, charindex('.', reverse(val)) - 1) new_val
from (values('20.6.4.4200'), ('10.28.30.2678'), ('22.8.34.1200')) t(val)
GO
val           | new_val
:------------ | :------
20.6.4.4200   | 4200   
10.28.30.2678 | 2678   
22.8.34.1200  | 1200   
0 голосов
/ 02 августа 2020

Регулярное выражение, вероятно, самый простой метод. Базы данных, поддерживающие регулярные выражения, обычно поддерживают то, что извлекает подстроку. Синтаксис будет иметь вид:

select regexp_substr(col, '[0-9]+$')

Конечно, функция может иметь другое имя.

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