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

Wie LPAD() in MariaDB funktioniert

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'