REPLICATE (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in 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 )
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.
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.
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)