Nachfolgend finden Sie Beispiele für das Hinzufügen einer führenden Null zu einer Zahl in SQL unter Verwendung verschiedener DBMSs.
Orakel
Oracle hat einen TO_CHAR(number)
Funktion, mit der wir führende Nullen zu einer Zahl hinzufügen können. Es gibt sein Ergebnis als Zeichenfolge im angegebenen Format zurück.
SELECT TO_CHAR(7, '000')
FROM DUAL;
Ergebnis:
007
Die 0
format-Element gibt die führenden Nullen aus. Wenn wir keine führenden Nullen wollten, könnten wir 9
verwenden .
Hier ist ein Vergleich zwischen 0
und 9
um zu demonstrieren, was ich meine:
SELECT
TO_CHAR(1234.456, '000G000D00') AS "0",
TO_CHAR(1234.456, '999G999D99') AS "9"
FROM DUAL;
Ergebnis:
0 9 ______________ ______________ 001,234.46 1,234.46
Das G
steht für das Gruppentrennzeichen und das D
steht für das Dezimaltrennzeichen. Eine vollständige Liste finden Sie in dieser Liste der Zahlenformatelemente.
Oracle hat auch ein LPAD()
Funktion, die es uns ermöglicht, eine Zahl mit führenden Nullen (oder jedem anderen Zeichen) aufzufüllen. Ein Beispiel finden Sie unter 2 Möglichkeiten zum Formatieren einer Zahl mit führenden Nullen in Oracle.
PostgreSQL
PostgreSQL hat auch ein TO_CHAR()
Funktion, und sie funktioniert wie die gleichnamige Funktion von Oracle:
SELECT TO_CHAR(7, '000');
Ergebnis:
007
Und hier ist ein Vergleich zwischen 0
und 9
:
SELECT
TO_CHAR(1234.456, '000G000D00') AS "0",
TO_CHAR(1234.456, '999G999D99') AS "9";
Ergebnis:
0 | 9 -------------+------------- 001,234.46 | 1,234.46
Eine vollständige Liste der Vorlagenmuster, die mit dieser Funktion in PostgreSQL verwendet werden können, finden Sie unter Vorlagenmuster und Modifikatoren für die numerische Formatierung in Postgres.
Wie Oracle hat auch PostgreSQL ein LPAD()
Funktion, die es uns ermöglicht, Zahlen mit führenden Nullen aufzufüllen. Ein Beispiel finden Sie unter 2 Möglichkeiten zum Hinzufügen führender Nullen in PostgreSQL.
MySQL
MySQL hat ein LPAD()
Funktion, mit der wir den linken Teil einer Zeichenfolge oder Zahl mit unserem ausgewählten Zeichen oder einer Reihe von Zeichen auffüllen können. Daher können wir es verwenden, um unsere Nummer mit Nullen aufzufüllen:
SELECT LPAD(7, 3, 0);
Ergebnis:
007
Glücklicherweise können wir die Zahl als numerischen Typ übergeben, sodass Sie sie nicht zuerst in einen String konvertieren müssen.
Weitere Informationen finden Sie unter So fügen Sie einer Zahl führende Nullen in MySQL hinzu.
MariaDB
Wie MySQL hat auch MariaDB ein LPAD()
Funktion, mit der wir den linken Teil einer Zeichenfolge oder Zahl mit unserem ausgewählten Zeichen oder einer Reihe von Zeichen auffüllen können:
SELECT LPAD(7, 3, 0);
Ergebnis:
007
Und wie bei MySQL können wir die Zahl als numerischen Typ übergeben, sodass sie nicht zuerst in einen String umgewandelt werden muss.
Weitere Informationen finden Sie unter So füllen Sie eine Zahl mit führenden Nullen in MariaDB auf.
SQL-Server
SQL Server hat ein FORMAT()
Funktion, mit der wir Zahlen mithilfe einer Formatzeichenfolge formatieren können:
SELECT FORMAT(7, '000');
Ergebnis:
007
Hier mit Gruppentrenner und Dezimaltrenner:
SELECT FORMAT(1234, '0,000.00');
Ergebnis:
1,234.00
Weitere Informationen finden Sie unter Führende und nachgestellte Nullen in SQL Server hinzufügen.
SQLite
SQLite hat ein PRINTF()
Funktion, die verwendet werden kann, um führende Nullen zu einer Zahl hinzuzufügen:
SELECT PRINTF('%03d', 7);
Ergebnis:
007
Eine Erklärung finden Sie unter So formatieren Sie Zahlen mit führenden Nullen in SQLite.
Aktualisieren :SQLite 3.38.0 (veröffentlicht am 22. Februar 2022) hat PRINTF()
umbenannt Funktion zu FORMAT()
. Das ursprüngliche PRINTF()
Name wird als Alias für Abwärtskompatibilität beibehalten.
Das obige Beispiel kann also folgendermaßen geändert werden:
SELECT FORMAT('%03d', 7);
Ergebnis:
007