Volver a la página principal
viernes 27 septiembre 2024
20

Cómo insertar o reemplazar texto con STUFF en SQL Server

¿Qué es STUFF y para qué se usa?

STUFF es una función de manipulación de cadenas que permite insertar una subcadena en una posición específica de otra cadena, reemplazando opcionalmente un número de caracteres existente. La función toma una cadena de entrada, la posición donde se desea insertar o reemplazar, el número de caracteres a eliminar y la subcadena a insertar.

Se usa comúnmente para:

  • Insertar texto en una posición específica.
  • Reemplazar partes de una cadena.
  • Formatear textos complejos o actualizar valores en consultas SQL.

Sintaxis de STUFF

STUFF ( string_expression, start, length, insert_string )
  • string_expression: La cadena de texto que se va a modificar.
  • start: La posición inicial donde se realizará la inserción (la primera posición es 1).
  • length: El número de caracteres a eliminar a partir de start. Si se establece en 0, no se elimina nada.
  • insert_string: La cadena que se va a insertar en la posición especificada.

Ejemplos de uso de STUFF

Reemplazar caracteres en una cadena

SELECT STUFF('Hola Mundo', 6, 5, 'SQL Server');

Resultado:

Hola SQL Server

En este ejemplo, STUFF comienza en la posición 6 de la cadena original (Hola Mundo), elimina 5 caracteres (Mundo) y los reemplaza con SQL Server.

Insertar texto sin eliminar caracteres

SELECT STUFF('ABCDEF', 4, 0, '123');

Resultado:

ABC123DEF

Aquí, STUFF inserta 123 en la posición 4 sin eliminar ningún carácter, ya que length se estableció en 0.

Eliminar caracteres de una cadena

SELECT STUFF('123456789', 4, 3, '');

Resultado:

123789

En este caso, STUFF elimina 3 caracteres a partir de la posición 4, sin insertar ninguna cadena (indicada por ''), resultando en 123789.

Formatear un número de teléfono

Supongamos que tienes un número sin formato en una tabla y deseas darle un formato más legible:

SELECT STUFF(STUFF('1234567890', 4, 0, '-'), 8, 0, '-');

Resultado:

123-456-7890

En este ejemplo, STUFF inserta el primer guion (-) en la posición 4 y el segundo guion en la posición 8.

Consideraciones importantes

  • Si start o length son valores negativos, STUFF devolverá un error.
  • Si start es mayor que la longitud de la cadena original, la función devolverá una cadena vacía.
  • Si length es mayor que el número de caracteres restantes desde start, STUFF eliminará todos los caracteres restantes.

Referencia oficial

Para más información sobre STUFF, consulta la documentación oficial de Microsoft.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer