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])
Où 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'