REPLICATE (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Ripete un valore stringa il numero di volte specificato.
Convenzioni relative alla sintassi Transact-SQL
REPLICATE ( string_expression , integer_expression )
string_expression
Espressione di dati di tipo stringa di caratteri o binario.
Nota
Se string_expression è di tipo binario, REPLICATE eseguirà una conversione implicita in varchar e pertanto non manterrà l'input binario.
Nota
Se string_expression input non è di tipo varchar(max) o nvarchar(max), REPLICATE tronca il valore restituito a 8.000 byte. Per restituire valori con dimensioni maggiori di 8.000 byte, è necessario eseguire il cast esplicito di string_expression al tipo di dati appropriato per valori di grandi dimensioni.
integer_expression
Espressione di qualsiasi tipo integer, incluso bigint. Se l'argomento integer_expression è negativo, viene restituito NULL.
Restituisce lo stesso tipo di string_expression.
Nell'esempio seguente viene replicato quattro volte un 0
carattere davanti a un codice della riga di produzione nel database AdventureWorks2022.
SELECT [Name]
, REPLICATE('0', 4) + [ProductLine] AS 'Line Code'
FROM [Production].[Product]
WHERE [ProductLine] = 'T'
ORDER BY [Name];
GO
Il set di risultati è il seguente.
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
...
Nell'esempio seguente vengono inseriti numeri di riempimento iniziali a sinistra fino alla lunghezza specificata durante la conversione da un tipo di dati numerico a un tipo di dati carattere o 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
Il set di risultati è il seguente.
Varchar Column Char Column
-------------------- ------------
002 2
037 37
597 597
(3 row(s) affected)
Nell'esempio seguente il carattere 0
viene ripetuto quattro volte davanti a un valore ItemCode
.
-- Uses AdventureWorks
SELECT EnglishProductName AS Name,
ProductAlternateKey AS ItemCode,
REPLICATE('0', 4) + ProductAlternateKey AS FullItemCode
FROM dbo.DimProduct
ORDER BY Name;
Ecco le prime righe del set di risultati.
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
SPACE (Transact-SQL)
Tipi di dati (Transact-SQL)
Funzioni per i valori stringa (Transact-SQL)