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).