STUFF (Transact-SQL)STUFF (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

La función STUFF inserta una cadena en otra.The STUFF function inserts a string into another string. 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.It deletes a specified length of characters in the first string at the start position and then inserts the second string into the first string at the start position.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

STUFF ( character_expression , start , length , replaceWith_expression )  

ArgumentosArguments

character_expressioncharacter_expression
Es una expresión de datos de caracteres.Is an expression of character data. character_expression puede ser una constante, una variable o una columna de datos binarios o de caracteres.character_expression can be a constant, variable, or column of either character or binary data.

startstart
Es un valor entero que especifica la ubicación donde comienzan la eliminación y la inserción.Is an integer value that specifies the location to start deletion and insertion. Si start es negativo o cero, se devuelve una cadena de tipo NULL.If start is negative or zero, a null string is returned. Si start es mayor que el primer valor de character_expression, se devuelve una cadena de tipo NULL.If start is longer than the first character_expression, a null string is returned. start puede ser de tipo bigint.start can be of type bigint.

lengthlength
Es un entero que especifica el número de caracteres que se elimina.Is an integer that specifies the number of characters to delete. Si length es negativo, se devuelve una cadena de tipo NULL.If length is negative, a null string is returned. Si length es mayor que el primer parámetro character_expression, se produce una eliminación hasta el último carácter del último character_expression.If length is longer than the first character_expression, deletion occurs up to the last character in the last character_expression. Si length es cero, la inserción se produce en la ubicación start y no se elimina ningún carácter.If length is zero, insertion occurs at start location and no characters are deleted. length puede ser de tipo bigint.length can be of type bigint.

replaceWith_expressionreplaceWith_expression
Es una expresión de datos de caracteres.Is an expression of character data. character_expression puede ser una constante, una variable o una columna de datos binarios o de caracteres.character_expression can be a constant, variable, or column of either character or binary data. Esta expresión reemplaza los caracteres legth de character_expression, empezando por start.This expression replaces length characters of character_expression beginning at start. Si se proporciona NULL como replaceWith_expression, los caracteres se quitan sin insertar nada.Providing NULL as the replaceWith_expression, removes characters without inserting anything.

Tipos devueltosReturn Types

Devuelve datos de caracteres si character_expression es de alguno de los tipos de datos de caracteres admitidos.Returns character data if character_expression is one of the supported character data types. Devuelve datos binarios si character_expression es de alguno de los tipos de datos binarios admitidos.Returns binary data if character_expression is one of the supported binary data types.

NotasRemarks

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.If the start position or the length is negative, or if the starting position is larger than length of the first string, a null string is returned. Si la posición inicial es 0, se devuelve un valor NULL.If the start position is 0, a null value is returned. 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.If the length to delete is longer than the first string, it is deleted to the first character in the first string.

Si el valor resultante es mayor que el máximo admitido por el tipo devuelto, se genera un error.An error is raised if the resulting value is larger than the maximum supported by the return type.

Caracteres adicionales (pares suplentes)Supplementary Characters (Surrogate Pairs)

Cuando se usan intercalaciones de caracteres adicionales, character_expression y replaceWith_expression pueden incluir pares suplentes.When using SC collations, both character_expression and replaceWith_expression can include surrogate pairs. El parámetro de longitud cuenta cada suplente en character_expression como un único carácter.The length parameter counts each surrogate in character_expression as a single character.

EjemplosExamples

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.The following example returns a character string created by deleting three characters from the first string, abcdef, starting at position 2, at b, and inserting the second string at the deletion point.

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

El conjunto de resultados es el siguiente.Here is the result set.

---------   
aijklmnef   
  
(1 row(s) affected)  

Consulte tambiénSee Also

CONCAT (Transact-SQL)CONCAT (Transact-SQL)
CONCAT_WS (Transact-SQL)CONCAT_WS (Transact-SQL)
FORMATMESSAGE (Transact-SQL)FORMATMESSAGE (Transact-SQL)
QUOTENAME (Transact-SQL)QUOTENAME (Transact-SQL)
REPLACE (Transact-SQL)REPLACE (Transact-SQL)
REVERSE (Transact-SQL)REVERSE (Transact-SQL)
STRING_AGG (Transact-SQL)STRING_AGG (Transact-SQL)
STRING_ESCAPE (Transact-SQL)STRING_ESCAPE (Transact-SQL)
TRANSLATE (Transact-SQL)TRANSLATE (Transact-SQL)
Tipos de datos (Transact-SQL) Data Types (Transact-SQL)
Funciones de cadena (Transact-SQL)String Functions (Transact-SQL)