Получение значения имени из строки с использованием TSQL
-
29-09-2019 - |
Вопрос
Я только что отредактировал вопрос, чтобы прояснить его ... пожалуйста, помогите
Я использую 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
Пожалуйста, дай мне знать.
спасибо
Решение
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, но вам нужно знать параметры начала и длины. Я имею в виду, если изменение значения строки, оно не сработает.
Не связан с StackOverflow