MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment LPAD() fonctionne dans MariaDB

Dans MariaDB, LPAD() est une fonction de chaîne intégrée qui remplit la partie gauche d'une chaîne avec un certain nombre de caractères.

Par exemple, vous pouvez utiliser LPAD() pour remplir la partie gauche d'une chaîne avec des espaces. Ou vous pouvez compléter un nombre avec des zéros non significatifs.

Syntaxe

La syntaxe ressemble à ceci :

LPAD(str, len [, padstr])

str est la chaîne à remplir, et len est le nombre de caractères pour compléter la chaîne. Notez qu'il ne s'agit pas de la quantité de remplissage elle-même, mais plutôt du nombre total de caractères que la chaîne renvoyée aura après avoir été remplie.

padstr est un argument facultatif qui spécifie le caractère à utiliser pour le remplissage.

Exemple

Voici un exemple de base :

SELECT LPAD('Lion', 8);

Résultat :

+-----------------+
| LPAD('Lion', 8) |
+-----------------+
|     Lion        |
+-----------------+

Dans ce cas, nous n'avons pas spécifié de troisième argument (pour le caractère de remplissage), et donc un espace a été utilisé. Le caractère espace est le caractère par défaut.

Spécifiez un caractère de remplissage

Voici un exemple qui utilise un troisième argument. Ceci spécifie quel caractère utiliser pour le rembourrage :

SELECT LPAD('Lion', 8, '.');

Résultat :

+----------------------+
| LPAD('Lion', 8, '.') |
+----------------------+
| ....Lion             |
+----------------------+

Les points nous permettent de voir plus clairement le rembourrage.

Numéros de remplissage

Voici un exemple de remplissage d'un nombre avec des zéros :

SELECT LPAD(7, 3, 0);

Résultat :

+---------------+
| LPAD(7, 3, 0) |
+---------------+
| 007           |
+---------------+

Remplissage plus petit que la chaîne d'origine

Si le deuxième argument est inférieur à la chaîne d'origine, aucun remplissage n'est ajouté et la chaîne d'origine est raccourcie au nombre de caractères spécifié :

SELECT LPAD('Lion', 2);

Résultat :

+-----------------+
| LPAD('Lion', 2) |
+-----------------+
| Li              |
+-----------------+

Exemples de bases de données

Voici un exemple de remplissage de la partie gauche des valeurs dans une colonne de base de données :

SELECT 
    LPAD(PetName, 15, '.') AS "Padded Name",
    PetName AS "Original Name"
FROM Pets;

Résultat :

+-----------------+---------------+
| Padded Name     | Original Name |
+-----------------+---------------+
| .........Fluffy | Fluffy        |
| ..........Fetch | Fetch         |
| ........Scratch | Scratch       |
| ............Wag | Wag           |
| ..........Tweet | Tweet         |
| .........Fluffy | Fluffy        |
| ...........Bark | Bark          |
| ...........Meow | Meow          |
+-----------------+---------------+

Voici un autre exemple qui remplit une colonne de prix :

SELECT 
    ProductId, 
    ProductPrice, 
    LPAD(ProductPrice, 8, 0) 
FROM Products;

Résultat :

+-----------+--------------+--------------------------+
| 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                 |
+-----------+--------------+--------------------------+

Arguments nuls

Si l'un (ou tous) des arguments est null , le LPAD() la fonction renvoie null :

SELECT 
    LPAD(null, 10, '.'),
    LPAD('Coffee', null, '.'),
    LPAD('Coffee', 10, null);

Résultat :

+---------------------+---------------------------+--------------------------+
| LPAD(null, 10, '.') | LPAD('Coffee', null, '.') | LPAD('Coffee', 10, null) |
+---------------------+---------------------------+--------------------------+
| NULL                | NULL                      | NULL                     |
+---------------------+---------------------------+--------------------------+

Mode Oracle

Quand pas s'exécutant en mode Oracle, si le résultat est vide (c'est-à-dire qu'il a une longueur de zéro), le résultat est une chaîne vide.

Cependant, lors de l'exécution en mode Oracle, le résultat est null .

Ici, il est en mode par défaut (c'est-à-dire pas en mode oracle) :

SELECT LPAD('', 0);

Résultat :

+-------------+
| LPAD('', 0) |
+-------------+
|             |
+-------------+

Passons maintenant en mode Oracle :

SET SQL_MODE=ORACLE;

Et relancez le code :

SELECT LPAD('', 0);

Résultat :

+-------------+
| LPAD('', 0) |
+-------------+
| NULL        |
+-------------+

Arguments manquants

Appel de LPAD() sans au moins deux arguments génère une erreur :

SELECT LPAD('Coffee');

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'

La même chose se produit lors de l'appel de LPAD() sans aucun argument :

SELECT LPAD();

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LPAD'