Dans MariaDB, RPAD()
est une fonction de chaîne intégrée qui remplit la partie droite d'une chaîne avec un certain nombre d'un caractère spécifié.
Par exemple, vous pouvez utiliser RPAD()
pour remplir la partie droite d'une chaîne avec des points.
Syntaxe
La syntaxe ressemble à ceci :
RPAD(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
RPAD('Fire', 8) AS "1",
RPAD('Fire', 15) AS "2",
'Fire' AS "3";
Résultat :
+----------+-----------------+------+ | 1 | 2 | 3 | +----------+-----------------+------+ | Fire | Fire | Fire | +----------+-----------------+------+
Le caractère espace est le caractère par défaut. Par conséquent, si vous n'incluez pas de troisième argument, un espace est utilisé. Dans ce cas, nous n'avons pas spécifié de troisième argument, et donc un espace a été utilisé.
Cet exemple renvoie trois colonnes. J'ai fait cela afin de vous permettre de voir plus facilement l'effet de RPAD()
plus clairement. Le remplissage a pour effet de repousser la largeur de la colonne jusqu'à la longueur de remplissage spécifiée.
Dans ce cas, les deux premières colonnes utilisent deux longueurs de remplissage différentes et la troisième est la chaîne d'origine (non rembourrée).
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 RPAD('Fire', 15, '.');
Résultat :
+-----------------------+ | RPAD('Fire', 15, '.') | +-----------------------+ | Fire........... | +-----------------------+
Les points nous permettent de voir plus clairement le rembourrage.
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 RPAD('Enlightenment', 7);
Résultat :
+--------------------------+ | RPAD('Enlightenment', 7) | +--------------------------+ | Enlight | +--------------------------+
Exemple de base de données
Voici un exemple de remplissage de la partie droite des valeurs dans une colonne de base de données :
SELECT
RPAD(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 | +-----------------+---------------+
Arguments nuls
Si l'un (ou tous) des arguments est null
, le RPAD()
la fonction renvoie null
:
SELECT
RPAD(null, 10, '.'),
RPAD('Coffee', null, '.'),
RPAD('Coffee', 10, null);
Résultat :
+---------------------+---------------------------+--------------------------+ | RPAD(null, 10, '.') | RPAD('Coffee', null, '.') | RPAD('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 RPAD('', 0);
Résultat :
+-------------+ | RPAD('', 0) | +-------------+ | | +-------------+
Passons maintenant en mode Oracle :
SET SQL_MODE=ORACLE;
Et relancez le code :
SELECT RPAD('', 0);
Résultat :
+-------------+ | RPAD('', 0) | +-------------+ | NULL | +-------------+
Arguments manquants
Appel de RPAD()
sans au moins deux arguments entraîne une erreur :
SELECT RPAD('Coffee');
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'
La même chose se produit lors de l'appel de RPAD()
sans aucun argument :
SELECT RPAD();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RPAD'