In MariaDB, LPAD()
ist eine eingebaute String-Funktion, die den linken Teil eines Strings mit einer bestimmten Anzahl von Zeichen auffüllt.
Beispielsweise können Sie LPAD()
verwenden um den linken Teil einer Zeichenfolge mit Leerzeichen aufzufüllen. Oder Sie könnten eine Zahl mit führenden Nullen auffüllen.
Syntax
Die Syntax lautet wie folgt:
LPAD(str, len [, padstr])
Wobei str
ist die aufzufüllende Zeichenfolge und len
ist die Anzahl der Zeichen, mit denen die Zeichenfolge aufgefüllt werden soll. Beachten Sie, dass dies nicht die Auffüllmenge selbst ist, sondern die Gesamtzahl der Zeichen, die die zurückgegebene Zeichenfolge nach dem Auffüllen haben wird.
padstr
ist ein optionales Argument, das angibt, welches Zeichen zum Auffüllen verwendet werden soll.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT LPAD('Lion', 8);
Ergebnis:
+-----------------+ | LPAD('Lion', 8) | +-----------------+ | Lion | +-----------------+
In diesem Fall haben wir kein drittes Argument (für das Füllzeichen) angegeben, also wurde ein Leerzeichen verwendet. Das Leerzeichen ist das Standardzeichen.
Geben Sie ein Füllzeichen an
Hier ist ein Beispiel, das ein drittes Argument verwendet. Dies gibt an, welches Zeichen für die Auffüllung verwendet werden soll:
SELECT LPAD('Lion', 8, '.');
Ergebnis:
+----------------------+ | LPAD('Lion', 8, '.') | +----------------------+ | ....Lion | +----------------------+
Die Punkte ermöglichen es uns, die Polsterung deutlicher zu sehen.
Zahlen auffüllen
Hier ist ein Beispiel für das Auffüllen einer Zahl mit Nullen:
SELECT LPAD(7, 3, 0);
Ergebnis:
+---------------+ | LPAD(7, 3, 0) | +---------------+ | 007 | +---------------+
Padding kleiner als die ursprüngliche Zeichenfolge
Wenn das zweite Argument kleiner als die ursprüngliche Zeichenfolge ist, wird keine Auffüllung hinzugefügt, und die ursprüngliche Zeichenfolge wird auf die angegebene Anzahl von Zeichen gekürzt:
SELECT LPAD('Lion', 2);
Ergebnis:
+-----------------+ | LPAD('Lion', 2) | +-----------------+ | Li | +-----------------+
Datenbankbeispiele
Hier ist ein Beispiel für das Auffüllen des linken Teils der Werte in einer Datenbankspalte:
SELECT
LPAD(PetName, 15, '.') AS "Padded Name",
PetName AS "Original Name"
FROM Pets;
Ergebnis:
+-----------------+---------------+ | Padded Name | Original Name | +-----------------+---------------+ | .........Fluffy | Fluffy | | ..........Fetch | Fetch | | ........Scratch | Scratch | | ............Wag | Wag | | ..........Tweet | Tweet | | .........Fluffy | Fluffy | | ...........Bark | Bark | | ...........Meow | Meow | +-----------------+---------------+
Hier ist ein weiteres Beispiel, das eine Preisspalte auffüllt:
SELECT
ProductId,
ProductPrice,
LPAD(ProductPrice, 8, 0)
FROM Products;
Ergebnis:
+-----------+--------------+--------------------------+ | ProductId | ProductPrice | LPAD(ProductPrice, 8, 0) | +-----------+--------------+--------------------------+ | 1 | 25.99 | 00025.99 | | 2 | 25.99 | 00025.99 | | 3 | 14.75 | 00014.75 | | 4 | 11.99 | 00011.99 | | 5 | 33.49 | 00033.49 | | 6 | 245.00 | 00245.00 | | 7 | 55.99 | 00055.99 | | 8 | 9.99 | 00009.99 | +-----------+--------------+--------------------------+
Null-Argumente
Wenn eines (oder alle) Argumente null
sind , das LPAD()
Funktion gibt null
zurück :
SELECT
LPAD(null, 10, '.'),
LPAD('Coffee', null, '.'),
LPAD('Coffee', 10, null);
Ergebnis:
+---------------------+---------------------------+--------------------------+ | LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('Coffee', 10, null) | +---------------------+---------------------------+--------------------------+ | NULL | NULL | NULL | +---------------------+---------------------------+--------------------------+
Oracle-Modus
Wenn nicht Wenn das Ergebnis im Oracle-Modus leer ist (d. h. eine Länge von Null hat), ist das Ergebnis ein leerer String.
Bei der Ausführung im Oracle-Modus ist das Ergebnis jedoch null
.
Hier ist es im Standardmodus (also nicht im Oracle-Modus):
SELECT LPAD('', 0);
Ergebnis:
+-------------+ | LPAD('', 0) | +-------------+ | | +-------------+
Wechseln wir nun in den Oracle-Modus:
SET SQL_MODE=ORACLE;
Und führen Sie den Code erneut aus:
SELECT LPAD('', 0);
Ergebnis:
+-------------+ | LPAD('', 0) | +-------------+ | NULL | +-------------+
Fehlende Argumente
Aufruf von LPAD()
ohne mindestens zwei Argumente führt zu einem Fehler:
SELECT LPAD('Coffee');
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'
Das gleiche passiert beim Aufruf von LPAD()
ohne Argumente:
SELECT LPAD();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'