REPLICATE (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Répète une valeur de chaîne un nombre spécifié de fois.

Conventions de la syntaxe Transact-SQL

Syntaxe

REPLICATE ( string_expression , integer_expression )   

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

string_expression
Correspond à une expression d'un type de données binaire ou de chaîne de caractères.

Notes

Si string_expression est de type binaire, REPLICATE effectuera une conversion implicite vers varchar, et ne préservera donc pas l'entrée binaire.

Notes

Si l’entrée string_expression n’est pas de type varchar(max) ou nvarchar(max), REPLICATE tronque la valeur renvoyée à 8 000 octets. Pour renvoyer des valeurs supérieures à 8 000 octets, il est nécessaire d’effectuer explicitement le transtypage de string_expression vers le type de données de valeur de grande taille approprié.

integer_expression
Expression de n’importe quel type entier, y compris bigint. Si integer_expression est négatif, la valeur NULL est renvoyée.

Types de retour

Retourne le même type que string_expression.

Exemples

R. Utilisation de REPLICATE

L’exemple suivant réplique un caractère 0 quatre fois devant un code de ligne de production dans la base de données AdventureWorks2022.

SELECT [Name]  
, REPLICATE('0', 4) + [ProductLine] AS 'Line Code'  
FROM [Production].[Product]  
WHERE [ProductLine] = 'T'  
ORDER BY [Name];  
GO  

Voici le jeu de résultats obtenu.

Name                                               Line Code  
-------------------------------------------------- ---------  
HL Touring Frame - Blue, 46                        0000T   
HL Touring Frame - Blue, 50                        0000T   
HL Touring Frame - Blue, 54                        0000T   
HL Touring Frame - Blue, 60                        0000T   
HL Touring Frame - Yellow, 46                      0000T   
HL Touring Frame - Yellow, 50                      0000T  
...  

B. Utilisation de REPLICATE et de DATALENGTH

Cet exemple complète à gauche des nombres dans la limite d'une longueur spécifiée lors de leur conversion d'un type de données numérique en type caractère ou Unicode.

IF EXISTS(SELECT name FROM sys.tables  
      WHERE name = 't1')  
   DROP TABLE t1;  
GO  
CREATE TABLE t1   
(  
 c1 varchar(3),  
 c2 char(3)  
);  
GO  
INSERT INTO t1 VALUES ('2', '2'), ('37', '37'),('597', '597');  
GO  
SELECT REPLICATE('0', 3 - DATALENGTH(c1)) + c1 AS 'Varchar Column',  
       REPLICATE('0', 3 - DATALENGTH(c2)) + c2 AS 'Char Column'  
FROM t1;  
GO  

Voici le jeu de résultats obtenu.

  
Varchar Column        Char Column  
--------------------  ------------  
002                   2    
037                   37   
597                   597  
  
(3 row(s) affected)  
  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

C : Utilisation de REPLICATE

L’exemple suivant réplique un caractère 0 quatre fois devant une valeur ItemCode.

-- Uses AdventureWorks  
  
SELECT EnglishProductName AS Name,  
   ProductAlternateKey AS ItemCode,  
   REPLICATE('0', 4) + ProductAlternateKey AS FullItemCode  
FROM dbo.DimProduct  
ORDER BY Name;  

Les premières lignes du jeu de résultats sont les suivantes.

Name                     ItemCode       FullItemCode
------------------------ -------------- ---------------
Adjustable Race          AR-5381        0000AR-5381
All-Purpose Bike Stand   ST-1401        0000ST-1401
AWC Logo Cap             CA-1098        0000CA-1098
AWC Logo Cap             CA-1098        0000CA-1098
AWC Logo Cap             CA-1098        0000CA-1098
BB Ball Bearing          BE-2349        0000BE-2349

Voir aussi

SPACE (Transact-SQL)
Types de données (Transact-SQL)
Fonctions de chaîne (Transact-SQL)