分割字符串和替换

4

我有一个包含URL的 varchar 列,数据看起来像这样:

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

我想要去掉第一个http并保留第二个,这样上面的一行就会变成:
http://www.somesite.com

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

你正在使用哪种编程语言? - stakx - no longer contributing
1
你似乎在谈论数据库中的字符串操作?如果是这样,请标记你所使用的数据库的问题,因为不知道这一点,就无法给出有用的答案。 - Oded
你使用的是哪个数据库?如果你的数据库支持,可以使用 lastIndexof() 和 substring() 函数的组合。 - Koekiebox
我已经更新了标签 - 使用 Sql server 2005 - viasualDna
所有的URL链接都一定是http:协议吗?还是可能会有一些https:的链接呢? - Martin Smith
2个回答

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://


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接