In MariaDB, RPAD()
ist eine eingebaute String-Funktion, die den rechten Teil eines Strings mit einer bestimmten Zahl eines bestimmten Zeichens auffüllt.
Beispielsweise können Sie RPAD()
verwenden um den rechten Teil einer Zeichenfolge mit Punkten aufzufüllen.
Syntax
Die Syntax sieht so aus:
RPAD(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
RPAD('Fire', 8) AS "1",
RPAD('Fire', 15) AS "2",
'Fire' AS "3";
Ergebnis:
+----------+-----------------+------+ | 1 | 2 | 3 | +----------+-----------------+------+ | Fire | Fire | Fire | +----------+-----------------+------+
Das Leerzeichen ist das Standardzeichen. Wenn Sie also kein drittes Argument angeben, wird ein Leerzeichen verwendet. In diesem Fall haben wir kein drittes Argument angegeben, also wurde ein Leerzeichen verwendet.
Dieses Beispiel gibt drei Spalten zurück. Ich habe das getan, damit Sie den Effekt von RPAD()
leichter sehen können klarer. Das Auffüllen bewirkt, dass die Breite der Spalte auf die angegebene Auffülllänge verschoben wird.
In diesem Fall verwenden die ersten beiden Spalten zwei unterschiedliche Fülllängen, und die dritte ist die ursprüngliche (nicht aufgefüllte) Zeichenfolge.
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 RPAD('Fire', 15, '.');
Ergebnis:
+-----------------------+ | RPAD('Fire', 15, '.') | +-----------------------+ | Fire........... | +-----------------------+
Die Punkte ermöglichen es uns, die Polsterung deutlicher zu sehen.
Padding kleiner als die ursprüngliche Zeichenfolge
Wenn das zweite Argument kleiner als der ursprüngliche String ist, wird kein Padding hinzugefügt und der ursprüngliche String wird auf die angegebene Anzahl von Zeichen gekürzt:
SELECT RPAD('Enlightenment', 7);
Ergebnis:
+--------------------------+ | RPAD('Enlightenment', 7) | +--------------------------+ | Enlight | +--------------------------+
Datenbankbeispiel
Hier ist ein Beispiel für das Auffüllen des rechten Teils der Werte in einer Datenbankspalte:
SELECT
RPAD(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 | +-----------------+---------------+
Null-Argumente
Wenn eines (oder alle) Argumente null
sind , das RPAD()
Funktion gibt null
zurück :
SELECT
RPAD(null, 10, '.'),
RPAD('Coffee', null, '.'),
RPAD('Coffee', 10, null);
Ergebnis:
+---------------------+---------------------------+--------------------------+ | RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('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 RPAD('', 0);
Ergebnis:
+-------------+ | RPAD('', 0) | +-------------+ | | +-------------+
Wechseln wir nun in den Oracle-Modus:
SET SQL_MODE=ORACLE;
Und führen Sie den Code erneut aus:
SELECT RPAD('', 0);
Ergebnis:
+-------------+ | RPAD('', 0) | +-------------+ | NULL | +-------------+
Fehlende Argumente
Aufruf von RPAD()
ohne mindestens zwei Argumente führt zu einem Fehler:
SELECT RPAD('Coffee');
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'
Das gleiche passiert beim Aufruf von RPAD()
ohne Argumente:
SELECT RPAD();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'