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

Comment fonctionne RPAD() dans MariaDB

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])

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'