Ir al contenido principal

Función STUFF() en SQL Server

La función STUFF inserta una cadena en otra cadena. Elimina una longitud especificada de caracteres en la primera cadena en la posición inicial y luego inserta la segunda cadena en la primera cadena en la posición inicial. En otras palabras, se reemplaza una parte de la cadena con otra especificando la posición donde debe ser insertada.

A continuación, se muestra la sintaxis de la función STUFF()

STUFF (input_string , start , length , new_string )

  • input_string es la cadena que se desea modificar.
  • start es la posición inicial  en la cadena para comenzar a eliminar algunos caracteres.
  • length  es la cantidad de caracteres que se eliminarán de la cadena.
  • new_string es la nueva cadena que se insertara dentro de la cadena principal en la posicion inicial especificada start.
Como mencione, anteriormente solo reemplaza una parte de la cadena con otra en una posición especifica pero porque no usar la función REPLACE() para este caso, Facil porque esta funcion reemplaza todas las coincidencias dentro de la cadena. Mientras, que la función STUFF() no.

Veamos un ejemplo. Tenemos la siguiente frase "Este es un ejemplo" necesitamos modificarla para que diga "Este era un ejemplo".

Como podemos observar en la imagen interior al utilizar la función REPLACE() se actualizará todas las coincidencias de "es" por la palabra "era" mientras que usando la funcion STUFF() podemos especificar donde insertar la nueva cadena de texto.

La cadena principal "Este es un ejemplo" consta de 19 caracteres, y el texto que necesitamos reemplazar se encuentra en la posicion 6 despues eliminanos 2 caracteres desde la posicion 6, lo cual seria la posicion 6 y 7 [es], al finalizar se agrega la nueva cadena [era] en la posicion 6.

Si aun no has entendido,  como usar la funcion STUFF() no te preocupes, te mostrare un par de ejemplos más.

Ejemplo 1: Uso de la función STUFF() con la posición inicial 1 y elimina cero caracteres.
Ejemplo 2:  Uso de la función STUFF() para reemplazar un carácter especial de la cadena en la posicion 1 y elimina un caracter.
Ejemplo 3: Uso de la función STUFF() con el valor de la posición inicial mayor que la longitud de la cadena, como resultado nos devuelve null.
Ejemplo 4: Uso de la función STUFF() con el cero como posición inicial, el valor devuelto es null esto porque la posicion inicial debe ser mayor o igual a 1.
Ejemplo 5: Uso de la función STUFF() para eliminar y rellenar caracteres más que la longitud existente. 
Ejemplo 6: Uso de la función STUFF() con una posición inicial negativa, este caso es igual al ejemplo 4. La posicion inicial debe ser mayor o igual a 1 por lo tanto el valor devuelto es null.

Ejemplo 7: Uso de la función STUFF() con un valor de caracteres a eliminar negativo, este parametro debe ser mayor o igual a 0, por lo tanto, el valor devuelto es null.

Bueno, estos son todas las combinaciones posibles para el uso de esta función
Espero les haya gustado (n_n)/

Comentarios

Post Populares

Función CHARINDEX() en SQL Server

La función  CHARINDEX()  de SQL Server devuelve un número entero, que devuelve la posicion inicial de la subcadena o expresión. Si no se encuentra la subcadena, el resultado de la función es 0. Si lo que deseas es obtener una subcadena de una cadena se utiliza la función  SUBSTRING() A continuacion se muestra la  sintaxis CHARINDEX(substring, string [, start_location]) substring es la subcadena a buscar. Su longitud está limitada a 8,000 caracteres. string puede ser una cadena literal, expresión o columna. Es una cadena para buscar. start_location es la ubicación en la que comienza la búsqueda. Start_location es un entero o una expresión que se evalúa como un valor de esos tipos de datos. El parámetro start_location es opcional. Si se omite, se establece cero o valor negativo, la búsqueda comienza al inicio de la cadena. Ejemplo 1:   Uso de la funcion CHARINDEX() , sin especificar la posicion inicial de la búsqueda. Ejemplo 2: Uso de la funcion CHARIN...

Función SUBSTRING() en SQL Server

La función SUBSTRING() extrae una subcadena con una longitud especificada a partir de una ubicación en una cadena de entrada. A continuación, se muestra la sintaxis de la función SUBSTRING() : SUBSTRING(input_string, start, length); input_string puede ser un varchar, binario, texto, ntext o imagen. start es un número entero que especifica la ubicación donde comienza la subcadena que se regresara. Tenga en cuenta que el primer carácter en input_string es 1, no cero. length es un entero positivo que especifica el número de caracteres de la subcadena que se devolverá.  La función SUBSTRING() genera un error si la longitud es negativa. Si start + length > que el total del largo de input_string , la subcadena comenzará al inicio e incluirá los caracteres restantes de input_string . Ejemplo 1: Uso de la funcion SUBSTRING() , Obtener información específica Ejemplo 2: Uso de la función SUBSTRING() , Obtener información dinámica  Cómo funciona Primero, utilizamos la función C...

Agregar N cantidad de ceros antes de un número en SQL

En muchas ocasiones en el día a día, nos  hemos encontrado con la situación de agregar N cantidad de ceros antes de un número esto debido a una mascara o formato especifico que necesitamos aplicar para un proceso o tarea especifica.  Asi mismo, he visto que hay muchas formas de solucionar esta problematica. Y les mostrare todas las formas posibles para solventar dicho caso. Ejemplo: Necesitamos crear una mascara rellena de ceros con una longitud de 5 caracteres. Me refiero a      que si digitamos el número 15 este me devuelva 00015 como resultado. Porque, por que la condicion es tener 5 caracteres en la cadena y como  el número 15 posee 2 caracteres se debe rellenar la parte izquierda con 3 ceros mas para cumplir esta condicion. Forma 1: Usando REPLACE() y STR() Forma 2: Usando CONCAT() y   REPLICATE() Forma 3: Usando el abreviado CONCAT() y  REPLICATE() Forma 4: Usando RIGHT() y  REPLICATE() Forma 5: Usando RIGHT() Forma 6: Usando F...