MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie RPAD() in MariaDB funktioniert

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'