Wenn Sie Oracle Database verwenden, um eine Zahl mit führenden Nullen zu formatieren, müssen wir sie in eine Zeichenfolge konvertieren und entsprechend formatieren.
Sie können den TO_CHAR(number)
verwenden Funktion zum Formatieren von Zahlen mit führenden Nullen.
Und vielleicht eine weniger bekannte Tatsache ist, dass Sie auch das LPAD()
verwenden können Funktion zum Auffüllen einer Zahl mit führenden Nullen.
Der TO_CHAR()
Funktion
Bei Verwendung von dem TO_CHAR(number)
verwenden Sie die 0
format-Element, um führende und/oder nachgestellte Nullen einzuschließen.
Beispiel:
SELECT TO_CHAR(7, 'fm000')
FROM DUAL;
Ergebnis:
007
Hier ist es im Vergleich zu 9
Formatelement:
SELECT
TO_CHAR(7, 'fm999') AS "9",
TO_CHAR(7, 'fm000') AS "0"
FROM DUAL;
Ergebnis:
9 0 ____ ______ 7 007
Die Anzahl der führenden Nullen wird durch die Anzahl der 0
bestimmt Formatelemente und die Anzahl der Ziffern in der Nummer:
SELECT
TO_CHAR(77, 'fm0') AS "r1",
TO_CHAR(77, 'fm00000') AS "r2",
TO_CHAR(777, 'fm00000') AS "r3",
TO_CHAR(7777, 'fm00000') AS "r4",
TO_CHAR(77777, 'fm00000') AS "r5"
FROM DUAL;
Ergebnis:
r1 r2 r3 r4 r5 _____ ________ ________ ________ ________ ## 00077 00777 07777 77777
Der fm
Der Formatmodifikator unterdrückt alle führenden und/oder nachfolgenden Auffüllungen, die möglicherweise im Ergebnis enthalten sind. Wenn die Zahl beispielsweise negativ ist, wird ein Minuszeichen vorangestellt. Aber wenn die Zahl positiv ist, ist kein Zeichen enthalten, und ein Leerzeichen erscheint, wo das Pluszeichen gewesen wäre.
Hier ist ein Beispiel, um dies zu demonstrieren:
SELECT
TO_CHAR(-7, '000') AS "Minus Sign",
TO_CHAR(7, '000') AS "Padded",
TO_CHAR(7, 'fm000') AS "Not Padded"
FROM DUAL;
Ergebnis:
Minus Sign Padded Not Padded _____________ _________ _____________ -007 007 007
Das LPAD()
Funktion
Wir können alternativ das LPAD()
verwenden Funktion zum Formatieren von Zahlen mit führenden Nullen.
Beispiel:
SELECT LPAD(7, 3, '0')
FROM DUAL;
Ergebnis:
007
Ein weiteres Beispiel:
SELECT
LPAD(77, 1, '0') AS "r1",
LPAD(77, 5, '0') AS "r2",
LPAD(777, 5, '0') AS "r3",
LPAD(7777, 5, '0') AS "r4",
LPAD(77777, 5, '0') AS "r5"
FROM DUAL;
Ergebnis:
r1 r2 r3 r4 r5 _____ ________ ________ ________ ________ 7 00077 00777 07777 77777
Einer der Vorteile von LPAD()
Der Unterschied zur vorherigen Methode besteht darin, dass wir dem Ergebnis andere Zeichen voranstellen können – es muss keine führende Null sein.
SELECT
LPAD(77, 1, '.') AS "r1",
LPAD(77, 5, '.') AS "r2",
LPAD(777, 5, '.') AS "r3",
LPAD(7777, 5, '.') AS "r4",
LPAD(77777, 5, '.') AS "r5"
FROM DUAL;
Ergebnis:
r1 r2 r3 r4 r5 _____ ________ ________ ________ ________ 7 ...77 ..777 .7777 77777