Replace start of string in SQL

sql, sql-server

Solution

SELECT REPLACE([strUrl], '/myoldurl/', '/mynewurl/') FROM [UrlRewrite]

to address Martin's point:

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

or

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

Problem

``` SELECT REPLACE([strUrl], '/myoldurl', '/mynewurl') FROM [UrlRewrite] ``` If `strUrl` is `/myoldurl/myoldurl_something_else`, it returns `/mynewurl/mynewurl_something_else`. I want it to be `/mynewurl/myoldurl_something_else`. How do I just replace from start of string in SQL?

Original source