Wenn Sie den Wert bis zu Tausendstel, aber nicht mehr von der Dezimalteil wollen, dann können Sie von 1000 und entweder FLOOR
oder TRUNC
verwenden multiplizieren. Wie folgt aus:
SELECT TO_CHAR(TRUNC(value * 1000), '00000009')
FROM table_name;
oder:
SELECT LPAD(TRUNC(value * 1000), 8, '0')
FROM table_name;
Mit TO_CHAR
wird nur eine eingestellte maximale Anzahl von Ziffern ermöglichen auf der Grundlage der Formatmaske (wenn der Wert über dieser Größe geht, dann wird es #
s anzuzeigen statt von Zahlen), aber es wird mit negativen Zahlen umgehen (das Minuszeichen vor den führenden Nullen platzieren).
Die Verwendung von LPAD
ermöglicht jede Eingabegröße, aber wenn die Eingabe negativ ist, befindet sich das Minuszeichen in der Mitte der Zeichenfolge (nach allen führenden Nullen).
Ist so etwas wie sprintf() auf Ihrer Datenbank? Das wäre der einfachste und lesbarste Weg, dies zu tun. –
Ich glaube nicht – Abderrahim