Condividi tramite


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

Sintassi

REPLICATE ( string_expression , integer_expression )   

Argomenti

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.

Tipi restituiti

Restituisce lo stesso tipo di string_expression.

Esempi

R. Utilizzo di REPLICATE

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

B. Utilizzo di REPLICATE e DATALENGTH

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)  
  

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

C: Uso di REPLICATE

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

Vedi anche

SPACE (Transact-SQL)
Tipi di dati (Transact-SQL)
Funzioni per i valori stringa (Transact-SQL)