Sql server 在PostgreSQL中获取句点后的所有内容

Sql server 在PostgreSQL中获取句点后的所有内容,sql-server,postgresql,substring,Sql Server,Postgresql,Substring,我试图删除周期之前的所有内容,换句话说,我只想显示从周期开始的值。比如说 897.78 ==> 78 74.25 ==> 25 3657.256 ==> 256 下面的代码只显示周期之前的所有内容,但我想显示周期之后的所有内容 select volume, substring(volume from 1 for position('.' in volume) - 1) as column from MyTable ; 这应该可以工作(因为我没有在这台电脑上安装p

我试图删除周期之前的所有内容,换句话说,我只想显示从周期开始的值。比如说

897.78 ==> 78 
74.25 ==> 25 
3657.256 ==> 256
下面的代码只显示周期之前的所有内容,但我想显示周期之后的所有内容

select volume, substring(volume from 1 for position('.' in volume) - 1) as column 
from MyTable    ;
这应该可以工作(因为我没有在这台电脑上安装postgre,所以没有经过测试):)

编辑: 甚至只是

select volume, substring(volume from position('.' in volume)+1) as column from MyTable;

应该可以工作,因为您只能在子字符串中定义起始位置。最优雅的方法是使用正则表达式形式:


请参阅此查询的工作原理。

另一种方法是使用
字符串到数组:

select volume,(string_to_array(volume,'.'))[2] as column
from mytable

select volume, substring(volume from '[^.]*$') as column
from 
select volume,(string_to_array(volume,'.'))[2] as column
from mytable