получение значения имени из строки с использованием TSQL - PullRequest
0 голосов
/ 09 ноября 2010

Я только что отредактировал вопрос, чтобы сделать его более понятным. Пожалуйста, помогите

Я использую 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

В следующей строке, как я могу получить значения "abc", используя TSQL?

результат должен быть ...

abc

1234
4587
2478
9874
5412

Пожалуйста, дайте мне знать.

спасибо

Ответы [ 2 ]

3 голосов
/ 09 ноября 2010
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
0 голосов
/ 09 ноября 2010

вы можете использовать метод substring в t-sql, но вам нужно знать параметры start и length.Я имею в виду, если значение строки изменится, оно не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...