Pregunta

Me acaba de editar la pregunta para que sea más claro .. por favor ayuda

Estoy utilizando SQL Server 2008.

Tengo una columna que contiene las siguientes cadenas ..

http://www.microsoft.com?abc=1234&def=567&ghi=891
http://www.microsoft.com?abc=4587&def=567&ghi=891
http://www.microsoft.com?abc=2478&def=567&ghi=891
http://www.microsoft.com?abc=9874&def=567&ghi=891
http://www.microsoft.com?abc=5412&def=567&ghi=891

En la siguiente cadena, ¿cómo puedo obtener los valores de "abc" usando TSQL?

el resultado debería ser ...

abc

1234
4587
2478
9874
5412

Por favor, hágamelo saber.

gracias

¿Fue útil?

Solución

declare @x varchar(100)
set @x = 'http://www.microsoft.com?abc=1234&def=567&ghi=891'

declare @param varchar(100)

set @param = 'abc='
select SUBSTRING(@x, charindex(@param, @x)+LEN(@param), CHARINDEX('&', @x+'&', charindex(@param, @x)) - CHARINDEX(@param, @x)-LEN(@param)) as abc

set @param = 'def='
select SUBSTRING(@x, charindex(@param, @x)+LEN(@param), CHARINDEX('&', @x+'&', charindex(@param, @x)) - CHARINDEX(@param, @x)-LEN(@param)) as def

set @param = 'ghi='
select SUBSTRING(@x, charindex(@param, @x)+LEN(@param), CHARINDEX('&', @x+'&', charindex(@param, @x)) - CHARINDEX(@param, @x)-LEN(@param)) as ghi

Otros consejos

Puede utilizar el método substring en T-SQL, pero se tendría que conocer los parámetros de inicio y duración. Me refiero a si los cambios de valores de cadena, no va a funcionar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top