0

我刚刚编辑了问题以使其更清楚..请帮助

我正在使用 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

请告诉我。

谢谢

4

2 回答 2

3
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
于 2010-11-08T22:49:54.440 回答
0

您可以在 t-sql 上使用 substring 方法,但您必须知道 start 和 length 参数。我的意思是如果字符串值发生变化,它将不起作用。

于 2010-11-08T22:51:24.237 回答