1

私はこれらの値を持っています

ROWA
-------
0.23
0.2350
0.1000
1.250
1200
1.300

小数点以下のゼロのみを削除する形式に変換したかったのでこれを使ってみました

select cast(RowA as decimal(18,3)) from dual.

ただし、結果は小数点の先頭のゼロを削除します。

ROWA
-------
.23
.235
.1
1.25
1200
1.3

に変換するにはどうすればよいですか

ROWA
-------
0.23
0.235
0.1
1.25
1200
1.3
4

3 に答える 3

5

あなたのサンプルは、10 進数用と整数用の 2 つの異なる形式を示しています。

with sampledata as
  (select 0.23 as rowa from dual
union all select 0.2350 from dual
union all select 0.1000 from dual
union all select 1.250 from dual
union all select 1200 from dual
union all select 1.300 from dual
 )
select TO_CHAR(rowa
              ,CASE WHEN rowa = TRUNC(rowa)
               then 'fm999999999999999990'
               else 'fm999999999999999990D999'
               end) as rowa
from sampledata;

ROWA
=====
0.23
0.235
0.1
1.25
1200
1.3
于 2013-09-17T02:07:04.897 に答える
0

またはどうですか

rtrim ( rtrim ( to_char (rowa ), 0 ), '.' )

于 2017-03-27T09:59:53.597 に答える