Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie füllt man Nullen für ein Zahlenfeld auf?

Wenn Sie den Wert bis zum Tausendstel wollen, aber nicht mehr Dezimalstellen, dann können Sie mit 1000 und entweder FLOOR multiplizieren oder verwenden Sie TRUNC . So:

SELECT TO_CHAR( TRUNC( value * 1000 ), '00000009' )
FROM   table_name;

oder:

SELECT LPAD( TRUNC( value * 1000 ), 8, '0' )
FROM   table_name;

Verwenden von TO_CHAR erlaubt nur eine festgelegte maximale Anzahl von Ziffern basierend auf der Formatmaske (wenn der Wert diese Größe überschreitet, wird # angezeigt s anstelle von Zahlen), aber es wird mit negativen Zahlen umgehen (indem das Minuszeichen vor die führenden Nullen gesetzt wird).

Mit LPAD erlaubt jede Eingabegröße, aber wenn die Eingabe negativ ist, steht das Minuszeichen in der Mitte der Zeichenkette (nach führenden Nullen).