替换SQL中的字符串开头

Jim*_*son 3 sql sql-server

SELECT REPLACE([strUrl], '/myoldurl', '/mynewurl') FROM [UrlRewrite]
Run Code Online (Sandbox Code Playgroud)

如果strUrl/myoldurl/myoldurl_something_else,则返回/mynewurl/mynewurl_something_else.我想要它/mynewurl/myoldurl_something_else.

我如何从SQL中的字符串开头替换?

Sea*_*ean 5

SELECT REPLACE([strUrl], '/myoldurl/', '/mynewurl/') FROM [UrlRewrite]
Run Code Online (Sandbox Code Playgroud)

解决马丁的观点:

SELECT CASE WHEN [strUrl] = '/myoldurl' THEN '/mynewurl' ELSE REPLACE([strUrl], '/myoldurl/', '/mynewurl/') END FROM [UrlRewrite]
Run Code Online (Sandbox Code Playgroud)

要么

SELECT 
    CASE 
    WHEN LEFT([strUrl], LEN('/myoldurl')) = '/myoldurl'
        THEN '/mynewurl' + SUBSTRING([strUrl], LEN('/myoldurl')+1, LEN([strUrl]))
    ELSE [strUrl]
    END
FROM [UrlRewrite]
Run Code Online (Sandbox Code Playgroud)