Catégories :

Fonctions de chaîne et fonctions binaires (général)

RPAD

Ajoute des caractères d’une autre chaîne à droite d’une chaîne, ou ajoute des octets issus d’une autre valeur binaire à droite d’une valeur binaire.

L’argument (base) est complété avec la longueur expr_longueur avec les caractères/octets de l’argument remplissage.

Syntaxe

RPAD(<base>, <length_expr> [, <pad>])

Arguments

base

Cela doit être une valeur VARCHAR ou BINARY.

expr_longueur

La longueur doit être une expression dont le résultat est un entier. Elle convient d’indiquer :

  • Le nombre de caractères UTF-8 à renvoyer si l’entrée est VARCHAR.

  • Le nombre d’octets à renvoyer si l’entrée est BINARY.

remplissage

Cela doit être une valeur VARCHAR ou BINARY. Le type doit correspondre au type de données du paramètre base. Les caractères (ou octets) de ce paramètre sont utilisés pour remplir la base.

Renvoie

Le type de données de la valeur renvoyée est identique à celui de la valeur d’entrée base (BINARY ou VARCHAR).

Notes sur l’utilisation

  • Si l’argument base est plus long que expr_longueur, il est tronqué à la longueur expr_longueur.

  • L’argument remplissage peut comporter plusieurs caractères/octets. L’argument remplissage est répété dans le résultat jusqu’à ce que la longueur souhaitée expr_longueur soit atteinte, tronquant les caractères/octets superflus de l’argument remplissage. Si l’argument remplissage est vide, aucun remplissage n’est inséré, mais le résultat est toujours tronqué à la longueur expr_longueur.

  • Lorsque base est une chaîne, la valeur par défaut de remplissage est « » (un seul espace vide). Lorsque base est une valeur binaire, l’argument remplissage doit être fourni explicitement.

Détails du classement

  • Le classement s’applique aux entrées VARCHAR. Le classement ne s’applique pas si le type de données en entrée du premier paramètre est BINARY.

  • No impact. Bien que les classements soient acceptés syntaxiquement, ils n’ont aucune incidence sur le traitement. Par exemple, les langues avec des lettres à deux caractères et à trois caractères (par exemple « dzs » en hongrois, « ch » en tchèque) comptent toujours celles-ci comme deux ou trois caractères (pas un caractère) pour l’argument de longueur.

  • The collation of the result is the same as the collation of the input. Cela peut être utile si la valeur renvoyée est transmise à une autre fonction dans le cadre d’appels de fonctions imbriquées.

  • Actuellement, Snowflake autorise les arguments base et remplissage à avoir des spécificateurs de classement différents. Toutefois, les spécificateurs de classement individuels ne peuvent pas être conservés tous les deux car la valeur renvoyée n’aura qu’un seul spécificateur de classement. Snowflake recommande aux clients d’éviter d’utiliser des chaînes remplissage dont le classement est différent de celui de la chaîne base.

Exemples

SELECT RPAD('123.50', 20, '*-') FROM dual;

--------------------------+
 RPAD('123.50', 20, '*-') |
--------------------------+
 123.50*-*-*-*-*-*-*-     |
--------------------------+