Ir al contenido principal

Limpiar Cadena en SQL Server

Uno de los mayores problemas en la gestion de base de datos es revisar cadena de datos con caracteres especiales que no se pueden dectectar a simple vista como Saltos de Lineas, Tabulacion o espacios sencillos, etc. 

Unos de los ejemplos mas comunes es cuando se importa informacion de un archivo excel a una base de datos SQL y este posee un salto de línea, al momento de realizar un inner join con una tabla de la base de datos con la informacion importada este no coincide y no se muestra en el grid de resultados. 

Otro caso puede ser que necesitamos extraer solo los valores numericos de una cadena de datos pero este posee caracteres especiales. Al usar cast(string as numérico) o convert(numérico, string) se genera el siguiente error al momento de realizar la conversion de un string a un valor numerico.


Entonces, este es tu dia de suerte, les mostrare como puede limpiar una cadena de datos en SQL sin tanto rollo utilizando las funciones PATINDEX() y STUFF(). Para ello creamos una funciones llamada udf_LimpiarString.


Como podemos observar el código es muy sencillo utilizando unas cuantas líneas de código. Veamos como funciona



Como se puede observar, se utiliza patrones para reestructurar la cadena de datos y asi devolver la nueva cadena.

Esto es todo, amigos.
Espero les ayude en su dia a dia.


Comentarios

Post Populares

Solucionar HybridStudioShell Cannot find one or more components. Please reinstall the application.

Hace un par de semanas instalé Magic XPA 4.8 en mi computadora y al momento de iniciar la aplicacion me muestra un mensaje de error que dice:  HybridStudioShell Cannot find one or more components. Please reinstall the application. Soluccionar este problema es muy sencillo, solo sigue estos pasos: Primero se debe desintalar Magic XPA 4.8 Después, desinstalar los siguientes programas y componentes de la computadora si es que estan instalados. Realmente, solo se debe desinstalar Microsoft Visual Studio 2015 shell (Isolated) para poder utilizar Magic XPA 4.8 pero en mi caso tenia problema con los Redistributable asi que aproveche  a instalarlo desde el instalador de Magic :3  Después instale Magic XPA 4.8 nuevamente, y con ello se reinstalara los componentes desinstalados en el paso anterior ya que Magic trae el instalador de estos componentes por si no se encuentra instalado en la PC. Al finalizar, la instalación ya podrá ingresar a Magic XPA 4.8 sin problemas. Muy Import...

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...

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...