Om du vill ha värdet upp till tusendelar men inte mer av decimaldelen kan du multiplicera med 1000 och antingen FLOOR
eller använd TRUNC
. Så här:
SELECT TO_CHAR( TRUNC( value * 1000 ), '00000009' )
FROM table_name;
eller:
SELECT LPAD( TRUNC( value * 1000 ), 8, '0' )
FROM table_name;
Använder TO_CHAR
kommer endast att tillåta ett inställt maximalt antal siffror baserat på formatmasken (om värdet går över denna storlek kommer det att visa #
s istället för siffror) men den kommer att hantera negativa tal (placera minustecknet före de inledande nollorna).
Använder LPAD
kommer att tillåta vilken storlek som helst på inmatningen men om inmatningen är negativ kommer minustecknet att vara i mitten av strängen (efter eventuella inledande nollor).