SELECT REPLACE([strUrl], '/myoldurl', '/mynewurl') FROM [UrlRewrite]
如果strUrl
为/myoldurl/myoldurl_something_else
,则返回/mynewurl/mynewurl_something_else
。我希望它是/mynewurl/myoldurl_something_else
。
如何从SQL中的字符串开头替换?
答案 0 :(得分:5)
SELECT REPLACE([strUrl], '/myoldurl/', '/mynewurl/') FROM [UrlRewrite]
解决马丁的观点:
SELECT CASE WHEN [strUrl] = '/myoldurl' THEN '/mynewurl' ELSE REPLACE([strUrl], '/myoldurl/', '/mynewurl/') END FROM [UrlRewrite]
或
SELECT
CASE
WHEN LEFT([strUrl], LEN('/myoldurl')) = '/myoldurl'
THEN '/mynewurl' + SUBSTRING([strUrl], LEN('/myoldurl')+1, LEN([strUrl]))
ELSE [strUrl]
END
FROM [UrlRewrite]
答案 1 :(得分:4)
您好,您可以使用STUFF功能检查这个简单的解决方案。
DECLARE @url varchar(255)='/myoldurl/myoldurl_something_else'
SELECT STUFF(@url,CHARINDEX('old',@url,1),3,'new')
答案 2 :(得分:2)
怎么样
SELECT '/mynewurl' + SUBSTRING([strUrl], LEN('/myoldurl')+1,8000) FROM [UrlRewrite]
WHERE [strUrl] LIKE '/myoldurl%'
答案 3 :(得分:0)
要从字符串的开头替换,您可以使用LIKE
进行过滤,或者如果这不适合您的查询,请使用CASE
,SUBSTRING
和{{1}有条件地进行替换
答案 4 :(得分:0)
在你的例子中,justo那样做:
ServerCall.close()