Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
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 una cadena de caracteres o tipo de datos binario. string_expression puede ser un dato de carácter o binario.[!NOTA] Si string_expression no es de tipo varchar(max) o nvarchar(max), REPLICATE trunca el valor devuelto en 8.000 bytes. Para devolver valores mayores de 8.000 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 devueltos
Devuelve el mismo tipo que string_expression.
Notas
Los niveles de compatibilidad pueden afectar a los valores devueltos. Para obtener más información, vea sp_dbcmptlevel.
Ejemplos
A. Usar REPLICATE
El ejemplo siguiente replica un carácter 0 cuatro veces delante de un código de línea de producción en la base de datos AdventureWorks.
USE AdventureWorks
GO
SELECT [Name]
, REPLICATE('0', 4) + [ProductLine] AS 'Line Code'
FROM [Production].[Product]
WHERE [ProductLine] = 'T'
ORDER BY [Name]
GO
Éste 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.
USE AdventureWorks;
GO
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')
INSERT INTO t1 VALUES ('37', '37')
INSERT INTO t1 VALUES ('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
Vea también
Referencia
Tipos de datos (Transact-SQL)
Funciones de cadena (Transact-SQL)