REPLICATE (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric

Repete um valor da cadeia de caracteres um número especificado de vezes.

Convenções de sintaxe de Transact-SQL

Sintaxe

REPLICATE ( string_expression , integer_expression )   

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

string_expression
É uma expressão de um tipo de dados binário ou cadeia de caracteres.

Observação

Se string_expression for do tipo binary, REPLICATE executará uma conversão implícita em varchar e, portanto, não preservará a entrada binária.

Observação

Se a entrada string_expression não for do tipo varchar(max) ou nvarchar(max), REPLICATE truncará o valor retornado em 8.000 bytes. Para retornar valores com mais de 8.000 bytes, string_expression deve ser convertida explicitamente no tipo de dados de valor grande apropriado.

integer_expression
É uma expressão de qualquer tipo inteiro, incluindo bigint. Se integer_expression for negativa, NULL será retornado.

Tipos de retorno

Retorna o mesmo tipo que numeric_expression.

Exemplos

a. Usando REPLICATE

O exemplo a seguir replica um caractere 0 quatro vezes na frente de um código de linha de produção no banco de dados AdventureWorks2022.

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

Este é o conjunto de resultados.

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. Usando REPLICATE e DATALENGTH

O exemplo a seguir preenche números à esquerda até um comprimento especificado, à medida que são convertidos de um tipo de dados numérico em caractere 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  

Este é o conjunto de resultados.

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

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

C: Usando REPLICATE

O exemplo a seguir replica um caractere 0 quatro vezes na frente de um valor ItemCode.

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

Estas são as primeiras linhas do conjunto de resultados.

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

Consulte Também

SPACE (Transact-SQL)
Tipos de dados (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)