質問

私はそれをより明確にするために質問を編集しました..助けてください

SQL Server 2008を使用しています。

次の文字列を含む列があります。

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

次の文字列で、TSQLを使用して「ABC」の値を取得するにはどうすればよいですか?

結果は...

abc

1234
4587
2478
9874
5412

私にお知らせください。

ありがとう

役に立ちましたか?

解決

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

他のヒント

T-SQLでサブストリングメソッドを使用できますが、開始パラメーターと長さのパラメーターを知る必要があります。文字列値が変更された場合、機能しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top