REPLICATE (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse 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 )
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
Veja a seguir 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
Veja a seguir 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)