URL字符串中的SQL Substring变量文本

时间:2015-06-28 08:19:35

标签: sql-server sql-server-2012

我试图解析SQL Server 2012中一列URL的信息

基本结构是

http://www.domainsomething.com/?test/campaign=abc&kwd=jdc ftp&catgory=brnd

我需要从kwd=值中获取参数。在上面的示例中,它将是&{39; jdc ftp',但对于我的列中的所有网址,这可能会有所不同。我已经尝试了CHARINDEXLEN,但我似乎无法正确地将语法放在一起。

1 个答案:

答案 0 :(得分:1)

试试这个:

DECLARE @URL varchar(100) = 'http://www.domainsomething.com/?test/campaign=abc&kwd=jdc ftp&catgory=brnd'

SELECT SUBSTRING(
       @URL, 
       CHARINDEX('kwd=', @URL)+4, 
       CASE WHEN CHARINDEX('&', @URL, CHARINDEX('kwd=', @URL)+5) > 0 THEN
       CHARINDEX('&', @URL, CHARINDEX('kwd=', @URL)+5)
        - (CHARINDEX('kwd=', @URL)+4)
       ELSE
          LEN(@URL)
       END
       )

这也将处理kwd是查询字符串中的最后一个或第一个变量的情况。

您可以在this sql fiddle.

中自行玩游戏