在postgresql中获取所有内容

时间:2013-09-17 13:04:12

标签: sql-server postgresql

我试图在句号之前删除所有内容,换句话说我只想显示从句点开始的值。例如

897.78 ==> 78 
74.25 ==> 25 
3657.256 ==> 256

以下代码只显示期间之前的所有内容,但我希望在期间之后显示所有内容

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

3 个答案:

答案 0 :(得分:2)

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

这应该可行(未经测试,因为我没有在这台电脑上安装postgre):)

编辑: 甚至只是

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

应该有效,因为你只能在子串中定义起始位置

答案 1 :(得分:0)

最优雅的方法是使用substring()的正则表单形式:

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

请参阅此查询的SQLFiddle

答案 2 :(得分:0)

另一种方法是使用string_to_array

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

SQLFiddle