Partilhar via


REPLICAR (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

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

Transact-SQL convenções de sintaxe

Sintaxe

REPLICATE ( string_expression , integer_expression )   

Arguments

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

Observação

Se string_expression for de tipo binário, REPLICATE realizará uma conversão implícita para varchar e, portanto, não preservará a entrada binária.

Observação

Se string_expression entrada não for do tipo varchar(max) ou nvarchar(max), REPLICATE trunca o valor de retorno em 8.000 bytes. Para devolver valores superiores a 8.000 bytes, string_expression devem ser explicitamente castados para o tipo de dado de grande valor apropriado.

integer_expression
É uma expressão de qualquer tipo inteiro, incluindo bigint. Se integer_expression for negativo, NULL é devoluído.

Tipos de devolução

Devolve o mesmo tipo que string_expression.

Examples

A. Utilização do REPLICATE

O exemplo seguinte replica uma 0 personagem quatro vezes à frente de um código de linha de produção na base de dados AdventureWorks2025.

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

Aqui está 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. Utilização de REPLICATE e DATALENGTH

O exemplo seguinte deixou os pads numerados com um comprimento especificado à medida que são convertidos de um tipo de dado numérico para carácter 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  

Aqui está o conjunto de resultados.

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

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

C: Utilização do REPLICATE

O exemplo seguinte replica um 0 carácter quatro vezes à frente de um ItemCode valor.

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

Aqui estã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

Ver também

ESPAÇO (Transact-SQL)
Tipos de dados (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)