REPLICATE (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric
Repite un valor de cadena un número especificado de veces.
Convenciones de sintaxis de Transact-SQL
Sintaxis
REPLICATE ( string_expression , integer_expression )
Argumentos
string_expression
Es una expresión de un tipo de datos binario o de cadena de caracteres.
Nota
Si string_expression es de tipo binary, REPLICATE realizará una conversión implícita a varchar y, por tanto, no conservará la entrada binaria.
Nota
Si la entrada string_expression no es de tipo varchar(max) o nvarchar(max), REPLICATE trunca el valor devuelto en 8000 bytes. Para devolver valores mayores de 8000 bytes, string_expression debe convertirse explícitamente al tipo de datos de valores grandes apropiado.
integer_expression
Es una expresión de cualquier tipo entero, incluido bigint. Si integer_expression es negativo, se devuelve NULL.
Tipos de valor devuelto
Devuelve el mismo tipo que string_expression.
Ejemplos
A. Usar REPLICATE
En el ejemplo siguiente se replica un carácter 0
cuatro veces delante de un código de línea de producción en la base de datos AdventureWorks2022.
SELECT [Name]
, REPLICATE('0', 4) + [ProductLine] AS 'Line Code'
FROM [Production].[Product]
WHERE [ProductLine] = 'T'
ORDER BY [Name];
GO
Este es el 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. Usar REPLICATE y DATALENGTH
En el ejemplo siguiente se rellena de números a la izquierda hasta una longitud especificada mientras que los números se convierten de un tipo de datos numérico a caracteres 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
Este es el conjunto de resultados.
Varchar Column Char Column
-------------------- ------------
002 2
037 37
597 597
(3 row(s) affected)
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
C. Usar REPLICATE
En el siguiente ejemplo se replica un carácter 0
cuatro veces delante de un valor ItemCode
.
-- Uses AdventureWorks
SELECT EnglishProductName AS Name,
ProductAlternateKey AS ItemCode,
REPLICATE('0', 4) + ProductAlternateKey AS FullItemCode
FROM dbo.DimProduct
ORDER BY Name;
Estas son las primeras filas del 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 también
SPACE (Transact-SQL)
Tipos de datos (Transact-SQL)
String Functions (Transact-SQL) [Funciones de cadena (Transact-SQL)]