Compartir a través de


STUFF (Transact-SQL)

La función STUFF inserta una cadena en otra. Elimina una longitud determinada de caracteres de la primera cadena a partir de la posición de inicio y, a continuación, inserta la segunda cadena en la primera, en la posición de inicio.

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

STUFF ( character_expression , start , length , replaceWith_expression )

Argumentos

  • character_expression
    Es una expresión de datos de caracteres. character_expression puede ser una constante, una variable o una columna de datos de caracteres o binarios.

  • start
    Es un valor entero que especifica la ubicación donde comienzan la eliminación y la inserción. Si start o length son negativos, se devuelve una cadena de tipo NULL. Si start es mayor que el primer valor de character_expression, se devuelve una cadena de tipo NULL. start puede ser de tipo bigint.

  • length
    Es un entero que especifica el número de caracteres que se elimina. Si length es mayor que el primer valor de character_expression, se produce una eliminación hasta el último carácter del último valor de character_expression. length puede ser de tipo bigint.

  • replaceWith_expression
    Es una expresión de datos de caracteres. character_expression puede ser una constante, una variable o una columna de datos de caracteres o binarios. Esta expresión reemplazará el número length de caracteres de character_expression a partir de start.

Tipos de valor devueltos

Devuelve datos de caracteres si character_expression es de alguno de los tipos de datos de caracteres admitidos. Devuelve datos binarios si character_expression es de alguno de los tipos de datos binarios admitidos.

Comentarios

Si la posición de inicio o la longitud es negativa, o si la posición de inicio es mayor que la longitud de la primera cadena, se devuelve una cadena NULL. Si la posición inicial es 0, se devuelve un valor NULL. Si la longitud que se va a eliminar es mayor que la primera cadena, se elimina hasta el primer carácter de la primera cadena.

Si el valor resultante es mayor que el máximo admitido por el tipo devuelto, se genera un error.

Caracteres adicionales (pares suplentes)

Cuando se utilizan intercalaciones de caracteres adicionales, character_expression y replaceWith_expression pueden incluir pares suplentes. El parámetro de longitud contará cada suplente en character_expression como un único carácter.

Ejemplos

En el ejemplo siguiente se devuelve una cadena de caracteres creada eliminando tres caracteres de la primera cadena, abcdef, a partir de la posición 2 de b, e insertando la segunda cadena en el punto de eliminación.

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

El conjunto de resultados es el siguiente.

--------- 
aijklmnef 

(1 row(s) affected)

Vea también

Referencia

Tipos de datos (Transact-SQL)

Funciones de cadena (Transact-SQL)