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

2 Möglichkeiten zum Formatieren einer Zahl mit führenden Nullen in Oracle

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