Ако искате стойността да е до хилядни, но не повече от десетичната част, тогава можете да умножите по 1000 и FLOOR
или използвайте TRUNC
. Като това:
SELECT TO_CHAR( TRUNC( value * 1000 ), '00000009' )
FROM table_name;
или:
SELECT LPAD( TRUNC( value * 1000 ), 8, '0' )
FROM table_name;
Използване на TO_CHAR
ще позволи само зададен максимален брой цифри въз основа на маската на формат (ако стойността надхвърля този размер, тогава ще се покаже #
s вместо числа), но ще обработва отрицателни числа (поставяне на знака минус преди водещите нули).
Използване на LPAD
ще позволи всякакъв размер на входа, но ако входът е отрицателен, знакът минус ще бъде в средата на низа (след всички водещи нули).