1

期間の前にすべてを削除しようとしています。つまり、期間から始まる値のみを表示したいのです。例えば

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

以下のコードは期間の前のすべてを表示しますが、期間の後のすべてを表示したいです

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

3 に答える 3

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

これはうまくいくはずです(このPCにpostgreがインストールされていないため、テストされていません):)

編集:ただでも

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

部分文字列の開始位置のみを定義できるため、機能するはずです

于 2013-09-17T13:08:06.050 に答える
0

別の方法は、次を使用することstring_to_arrayです。

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

SQLフィドル

于 2013-09-17T17:55:02.080 に答える