Compartir a través de


REPLACE (Transact-SQL)

Reemplaza todas las instancias de un valor de cadena especificado por otro valor de cadena.

Se aplica a: SQL Server (SQL Server 2008 a versión actual), Windows Azure SQL Database (Versión inicial a versión actual).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

REPLACE ( string_expression , string_pattern , string_replacement )

Argumentos

  • string_expression
    Es la expresión de cadena que se va a buscar. string_expression puede ser de un tipo de datos binario o de caracteres.

  • string_pattern
    Es la subcadena que se va a buscar. string_pattern puede ser de un tipo de datos binario o de caracteres. string_pattern no puede ser una cadena vacía (''), y no debe superar el número máximo de bytes que cabe en una página.

  • string_replacement
    Es la cadena de reemplazo. string_replacement puede ser de un tipo de datos binario o de caracteres.

Tipos de valor devueltos

Devuelve nvarchar si uno de los argumentos de entrada tiene el tipo de datos nvarchar; de lo contrario, REPLACE devuelve varchar.

Devuelve NULL si alguno de los argumentos es NULL.

Si string_expression no es de tipo varchar(max) o nvarchar(max), REPLACE trunca el valor devuelto en 8.000 bytes. Para devolver valores mayores de 8.000 bytes, string_expression debe convertirse explícitamente a un tipo de datos de valores grandes.

Comentarios

REPLACE realiza comparaciones basándose en la intercalación de la entrada. Para realizar una comparación en la intercalación especificada, puede utilizar COLLATE para aplicar una intercalación explícita a la entrada.

0x0000 (char(0)) es un carácter no definido en las intercalaciones de Windows y no se puede incluir en REPLACE.

Ejemplos

El siguiente ejemplo reemplaza la cadena cde de abcdefghi por xxx.

SELECT REPLACE('abcdefghicde','cde','xxx');
GO

El conjunto de resultados es el siguiente.

------------
abxxxfghixxx
(1 row(s) affected)

El siguiente ejemplo utiliza la función COLLATE.

SELECT REPLACE('This is a Test'  COLLATE Latin1_General_BIN,
'Test', 'desk' );
GO

El conjunto de resultados es el siguiente.

------------
This is a desk
(1 row(s) affected)

Vea también

Referencia

Tipos de datos (Transact-SQL)

Funciones de cadena (Transact-SQL)