在定义的小数点后选择特定数据

dl5txlt9  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(274)

我有一个包含版本信息的列,格式如下:

20.6.4.4200
10.28.30.2678
22.8.34.1200

我只想选择最后一个小数点后的值,比如:

4200
2678
1200

最好的方法是什么?或者需要正则表达式吗?

r8uurelv

r8uurelv1#

在正则表达式支持较差的sql server中,可以按如下方式使用字符串函数:

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

其思想是获得字符串中最后一个点的位置,从字符串末尾开始计数,然后用 right() .
db小提琴演示:

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
bvjxkvbb

bvjxkvbb2#

正则表达式可能是最简单的方法。支持正则表达式的数据库通常支持检索子字符串的内容。语法如下:

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

当然,函数可能有不同的名称。

相关问题