Domanda

Ho appena curato la questione per renderlo più chiaro .. per favore help

Sto utilizzando SQL Server 2008.

Ho una colonna contenente le seguenti stringhe ..

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

Nel seguente stringa, come posso ottenere valori di "abc" utilizzando TSQL?

il risultato dovrebbe essere ...

abc

1234
4587
2478
9874
5412

Per favore fatemi sapere.

grazie

È stato utile?

Soluzione

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

Altri suggerimenti

è possibile utilizzare il metodo sottostringa in T-SQL, ma si dovrebbe conoscere i parametri di inizio e di lunghezza. Voglio dire, se le variazioni di valore di stringa, non funzionerà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top