拆分字符串并替换

时间:2011-02-13 08:54:05

标签: sql-server-2005 string

我有一个带有Url的varchar列,其数据如下所示:

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

我想摆脱第一个http并保留第二个http,因此上面的行会导致:

http://www.somesite.com

我已尝试使用split()但无法使其正常工作

由于

2 个答案:

答案 0 :(得分:3)

如果您尝试使用T-SQL执行此操作,可以尝试以下行:

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

这将返回第一个http://的起始位置,该位置前面至少有一个字符(因此它前面的'%_'和+ 1偏移量)。

答案 1 :(得分:2)

如果第一个网址始终从字符串的开头开始,则可以使用SUBSTRING()& CHARINDEX()

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

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