Dans SQL Server, le T-SQL REPLICATE()
La fonction répète une valeur de chaîne un nombre de fois spécifié et renvoie le résultat.
La fonction accepte deux arguments ; la chaîne d'entrée et le nombre de fois qu'elle doit être répétée.
Syntaxe
La syntaxe ressemble à ceci :
REPLICATE ( string_expression ,integer_expression )
Où string_expression est la chaîne d'entrée. Il peut s'agir de données de caractère ou de données binaires.
Et expression_entier est un entier qui spécifie combien de fois répéter la chaîne d'entrée. Il peut s'agir de n'importe quel type d'entier, y compris bigint .
Notez que si le premier argument n'est pas de type varchar(max) ou nvarchar(max) , la fonction tronque la valeur de retour à 8 000 octets. Pour renvoyer des valeurs supérieures à 8 000 octets, le premier argument doit être transtypé explicitement dans le type de données de grande valeur approprié.
Exemple 1 - Utilisation de base
Voici un exemple de son fonctionnement :
SELECT REPLICATE('Dog', 3) AS Result;
Résultat :
+-----------+ | Result | |-----------| | DogDogDog | +-----------+
Exemple 2 - Ajouter un espace
On peut aussi ajouter un espace à l'exemple précédent :
SELECT REPLICATE('Dog ', 3) AS Result;
Résultat :
+--------------+ | Result | |--------------| | Dog Dog Dog | +--------------+
Notez que cela ajoutera également un espace à la fin de la chaîne.
Nous pourrions utiliser le TRIM()
fonction pour surmonter cela :
SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;
Résultat :
+-------------+ | Result | |-------------| | Dog Dog Dog | +-------------+
Peut-être que l'exemple suivant rendra cela plus évident :
SELECT REPLICATE('Dog ', 3) + '.' AS 'Untrimmed', TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';
Résultat :
+---------------+--------------+ | Untrimmed | Trimmed | |---------------+--------------| | Dog Dog Dog . | Dog Dog Dog. | +---------------+--------------+
Exemple 3 - Nombre de réplications non valide
Si le deuxième argument est une valeur négative, NULL
est renvoyé :
SELECT REPLICATE('Dog', -3) AS Result;
Résultat :
+----------+ | Result | |----------| | NULL | +----------+
Exemple 4 - Un exemple de base de données
Voici un exemple de réplication de données à partir d'une base de données :
SELECT TOP(3) TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result FROM Artists;
Résultat :
+----------------------------------------------------+ | Result | |----------------------------------------------------| | Iron Maiden Iron Maiden Iron Maiden | | AC/DC AC/DC AC/DC | | Allan Holdsworth Allan Holdsworth Allan Holdsworth | +----------------------------------------------------+