Here is another expression.
Code:
------------------------------ Commands Entered ------------------------------
SELECT val
, TO_CHAR(val) AS to_char
, LEFT(CHAR(val),1-(SIGN(val)+SIGN(ABS(val)-1))/2)
||STRIP(CHAR(ABS(val)),L,'0') AS expression
FROM (SELECT DEC(d,18,3) AS val
FROM
( VALUES 12.25, 100056.009, 10., 1., 0.123, 0.001
, 0, -0.001, -1., -10., -12.25, -100056.009
) AS test_data(d)
)
;
------------------------------------------------------------------------------
VAL TO_CHAR EXPRESSION
-------------------- ------------------------------------------ ----------------------------------------
12.250 12.250 12.250
100056.009 100056.009 100056.009
10.000 10.000 10.000
1.000 1.000 1.000
0.123 0.123 0.123
0.001 0.001 0.001
0.000 0.000 0.000
-0.001 -0.001 -0.001
-1.000 -1.000 -1.000
-10.000 -10.000 -10.000
-12.250 -12.250 -12.250
-100056.009 -100056.009 -100056.009
12 record(s) selected.