STUFF (Transact-SQL)
Se aplica a: punto de conexión de SQL Server
Azure SQL Database
Azure SQL Instancia administrada
punto de conexión de SQL Analytics Analytics Platform System (PDW) de SQL Analytics
System (PDW)
de SQL Server en Microsoft Fabric
Warehouse en Microsoft Fabric
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.
Convenciones de sintaxis de Transact-SQL
Sintaxis
STUFF ( character_expression , start , length , replace_with_expression )
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
Argumentos
character_expression
Una expresión de datos de caracteres. character_expression puede ser una constante, una variable o una columna de datos binarios o de caracteres.
start
Un valor entero que especifica la ubicación donde comienzan la eliminación y la inserción. Si start es negativo o cero, 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
Un entero que especifica el número de caracteres que se elimina. Si length es negativo, se devuelve una cadena de tipo NULL. 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. Si length es cero, la inserción se produce en la ubicación inicial y no se elimina ningún carácter. length puede ser de tipo bigint.
replace_with_expression
Una expresión de datos de caracteres. replace_with_expression puede ser una constante, una variable o una columna de datos binarios o de caracteres. Esta expresión reemplaza los caracteres legth de character_expression, empezando por start. Si se proporciona NULL
como replace_with_expression, los caracteres se quitan sin insertar nada.
Tipos de valores 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.
Observaciones
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 usan intercalaciones de caracteres adicionales, character_expression y replace_with_expression pueden incluir pares suplentes. El parámetro de longitud cuenta 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)
Consulte también
- CONCAT (Transact-SQL)
- CONCAT_WS (Transact-SQL)
- FORMATMESSAGE (Transact-SQL)
- QUOTENAME (Transact-SQL)
- REPLACE (Transact-SQL)
- REVERSE (Transact-SQL)
- STRING_AGG (Transact-SQL)
- STRING_ESCAPE (Transact-SQL)
- TRANSLATE (Transact-SQL)
- Tipos de datos (Transact-SQL)
- String Functions (Transact-SQL) [Funciones de cadena (Transact-SQL)]