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

Fonctionnement de la fonction REPLICATE() dans SQL Server (T-SQL)

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 )

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 |
+----------------------------------------------------+