Jeśli chcesz uzyskać wartość do tysięcznych, ale nie więcej części dziesiętnej, możesz pomnożyć przez 1000 i albo FLOOR lub użyj TRUNC . Tak:
SELECT TO_CHAR( TRUNC( value * 1000 ), '00000009' )
FROM table_name;
lub:
SELECT LPAD( TRUNC( value * 1000 ), 8, '0' )
FROM table_name;
Korzystanie z TO_CHAR zezwoli tylko na ustaloną maksymalną liczbę cyfr w oparciu o maskę formatu (jeśli wartość przekroczy ten rozmiar, wyświetli # s zamiast liczb), ale obsługuje liczby ujemne (umieszczając znak minus przed wiodącymi zerami).
Korzystanie z LPAD zezwoli na dowolny rozmiar danych wejściowych, ale jeśli dane wejściowe są ujemne, znak minus będzie znajdować się w środku ciągu (po zerach wiodących).