2011-02-13 82 views
4

我有一个varchar列有地址的数据,看起来像这样:分割字符串和替换

http://google.mews.......http://www.somesite.com 

我想摆脱第一个HTTP,并保持第二个这样的行以上将导致:

http://www.somesite.com 

我一直在使用split()尝试,但不能让它的工作

感谢

+0

你在使用什么编程语言? – stakx 2011-02-13 09:00:25

回答

3

如果你想做到这一点使用T-SQL,你可以尝试的东西线:

-- assume @v is the variable holding the URL 
SELECT SUBSTRING(@v, PATINDEX('%_http://%', @v) + 1, LEN(@v)) 

这将返回一个HTTP的起始位置:即收到了至少一个//字符(因此在它之前的'%_'和+ 1偏移量)。

2

如果第一个URL总是从字符串的开头权开始,你可以使用SUBSTRING() & CHARINDEX()

SELECT SUBSTRING(column, CHARINDEX('http://', column, 2), LEN(column)) 
FROM table 

CHARINDEX简单地搜索一个子串,并返回字符串中的子字符串的起始位置。它的第三个参数是可选的,如果设置,则指定搜索开始位置,在这种情况下,它是2,因此它没有碰到第一个http://