Consultas sql en un campo

Hola, buenos dias, estoy comenzando a manipular consultas en sql utilizando query analizer y quisiera saber como obtener solo el resultado = 8900.00 desde un campo que posee este registro 12583427}0161091558}10540101693}8900.00

1 respuesta

1
Respuesta de
Hola,
Hay muchas funciones para manipular cadenas de caracteres que son muy útiles en SQL Server, te presento a 3:
PATINDEX - Busca la primer ocurrencia de un conjunto de caracteres en una cadena. En nuestro caso es la } lo que buscaremos.
SUBSTRING - Devuelve una parte de una cadena en función de lo que se expresa en sus parámetros.
REVERSE - Da la vuelta a una cadena de caracteres.
Esta es tu solución:
SELECT REVERSE(SUBSTRING(REVERSE('12583427}0161091558}10540101693}8900.00'), 1, PATINDEX('%}%', REVERSE('12583427}0161091558}10540101693}8900.00'))-1))
SUBSTRING devuelve la parte de la cadena de caracteres que se expresa en el primer parámetro comenzando a partir de la posición que se especifica en el segundo parámetro, y terminando en la que se especifica en el segundo parámetro.
Con PATINDEX buscamos la primera ocurrencia del carácter }, como en este caso necesitamos lo que hay después de la última ocurrencia, lo que hacemos es darle la vuelta a la cadena con la función REVERSE, a esta posición le restamos uno para que la } no salga en nuestro resultado.
Y por supuesto, a SUBSTRING le especificamos que la cadena en la que vamos a buscar es la original al revés, porque si no nos cogería los caracteres del principio y queremos los del final.
Para que nuestro resultado sea el que queremos hacemos un REVERSE al resultado del SUBSTRING.
Espero haberme explicado.
Saludos!
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje