Ir al contenido principal

Entradas

Mostrando entradas de junio, 2021

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

Conocer la versión exacta de SQL Server

Hay algunas aplicaciones que necesitan tener una versión específica de SQL Server. Esta información se puede obtener haciendo una simple consulta a la base de datos: SELECT @@VERSION El resultado seria el siguiente:  Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64)  Oct 28 2019 19:56:59  Copyright (C) 2019 Microsoft Corporation Express Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 19042: ) En mi caso, esta es la versión de SQL que utilizo mientras que ustedes pueden tener una versión inferior o superior a la mía. Ejecución del Script Bueno, esto seria todo Espero les haya gustado (n_n)/

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

Extracción de valores numéricos a partir de una cadena compleja

Este día estuve realizando unas investigaciones de como usar CHARINDEX() en cadenas realmente complejas y me encontre con un post realizado Por Joseph Arquímedes Collado bastante interesante, el cual decidi reutilizar, ya que el planteamiento y solución del mismo es bastante completo. Puede ver el post original aquí . Problema: Tengo una consulta que me tiene entrampado hace varios días; existe un campo donde se guardan indistintamente datos de tipo texto, numérico y decimales del cual debo obtener solo la parte entera y sus respectivos decimales. Ejemplo:  RM*NORMAL-207.41;S3;P1-2 RM*SAVER1-52.87;S3;P2 Se ha identificado que la parte que debo tomar debería empezar después del guion medio ( – ) hasta antes del punto y coma ( ; ) , ese sería el patrón pero no se como aplicarlo para obtener la solución. Solución: Crear una función escalar para obtener el  valor númerico. En este caso, he modificado la función para que tambien se envie el prefijo (-)  y sufijo (;) de l...

Contar decimales en SQL Server

Este día les mostraré un script para retornar la cantidad de decimales de un valor numérico.  Como se puede observar en la imagen anterior, primero creamos la función udf_ContarDecimales y después realizamos un select con el valor numérico que queramos. Como se puede ver en la segunda imagen,  al momento de enviar el parámetro numérico 14.2512 podemos observar exactamente que este posee 4 decimales y al ejecutar la funcion udf_ContarDecimales este nos devuelve 4 que es exactamente la cantidad de numéros decimales que este posee. Pruebas realizadas con éxito 😉 Bueno, esto es todo por hoy.  Espero que esta función les sirva en su día a día (n_n)/

Función PATINDEX() en SQL Server

La función PATINDEX() devuelve la posición inicial de un patrón dentro de una cadena de entrada en una expresión especifica, o cero si no se encuentra el patrón, en todos los tipos de datos de caracteres y texto válidos.  A continuación, se muestra la sintaxis de la función PATINDEX(): PATINDEX ('%StringPattern%', input_string) String_Pattern define la expresión de carácter que desea encontrar en la cadena de entrada. En el patrón, contiene los caracteres comodín como% y '_'. Los caracteres comodín son los mismos que se utilizan en los operadores LIKE. input_string define una cadena de entrada en la que desea buscar el patrón. Les mostraré como buscar la posición inicial, ya sea por palabra literal o patrón. Ejemplo 1: Buscar palabra literal Ejemplo 2: Buscar coincidencias con el patrón Como funciona el Ejemplo 2, para ello explicare cada patrón utilizado %BC% : No importa donde se encuentre BC ubicado, siempre y cuando esten juntas AB%:  La cadena de texto debe e...

Combinando la función SUBSTRING() y CHARINDEX()

En algunas ocasiones, tenemos que trabajar con cadenas de caracteres y necesitamos determinar cuál es el número de índice de una palabra que se encuentra dentro de la cadena de caracteres. Pero si ya conocemos el índice, podemos fácilmente usar la función SUBSTRING() la cual nos permite pasarle una cadena, especificarle cual va hacer la posición desde la cual ella va a empezar a tomar caracteres y el ultimo parámetro es la cantidad de caracteres que vamos a tomar a partir de la posición desde donde ella empezara a tomar caracteres. Tenemos que saber también que la función CHARINDEX() retorna la posición en la cual se encuentra dicha palabra que este dentro de una cadena. Ejemplo 1: Devolver palabra de busqueda Ejemplo 2: Obtener información dinámica Cómo funciona Primero, utilizamos la función  CHARINDEX()  para buscar el carácter "@" en el correo electrónico. El dominio comenzará desde el carácter @ más uno. Luego, utilizamos el resultado de la función  CHARINDEX() ...

Función LEN() en SQL Server

La función LEN() devuelve el número de caracteres de una cadena de entrada, excluyendo los espacios en blanco finales. A continuación, se muestra la sintaxis de la función LEN() : LEN(input_string) input_string puede ser una cadena de caracteres literal, una expresión de cadena o una columna de caracteres o datos binarios. La función LEN() devuelve un valor cuyo tipo de datos es BIGINT si input_string es del tipo de datos VARCHAR(max), NVARCHAR(max) o VARBINARY(max). Ejemplo: Como se puede observar en la imagen, se excluye los espacios blancos finales. Bueno amigos, esto es todo Espero les haya gustado (n_n)/

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

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 CHAR() en SQL Server

La función CHAR() convierte un valor de código ASCII en un valor de carácter.  La Sintaxis es la siguiente: CHAR(int_exp) int_exp  es una expresión entera que se evalúa como un número entero cuyo valor es de 0 a 255. Si la expresión entera se evalúa como un valor que está fuera de este rango, la función CHAR() devuelve NULL.  La funcion CHAR() devuelve un caracter cuyo tipo de datos es CHAR(1) . Como se puede ver en la imagen el valor que regresa la funcion char() es char(1), en el caso del char(5000) no se encuentra en el rango de 0 a 255 por lo tanto el valor devuelto es nulo.  Nota:  El rango de 48 a 57 son los numeros de 0 a 9 El rango de 65 a 90 es el alfabeto en mayúscula El rango de 97 a 122 es el alfabeto en minúscula