6

Email

値:

josh@yahoo.com
carmine32@hotmail.com
zehmaneh@yahoo.com

@前の文字列を。に置き換えたいtest

結果:

test@yahoo.com
test@hotmail.com
test@yahoo.com

文字列内の文字に基づいてサブストリングを使用して置換するにはどうすればよいですか?

4

4 に答える 4

7

substringまたはを使用する必要はありませんreplace。これを使用できます。

SELECT 'test' + RIGHT(email, charindex('@', REVERSE(email)))
FROM YourTable

あなたはこれでそれをテストすることができます:

DECLARE @email nvarchar(50)
SET @email = 'carmine32@hotmail.com'
PRINT 'test' + RIGHT(@email, charindex('@', REVERSE(@email)))
于 2012-09-11T14:14:21.303 に答える
3
declare @t table(email varchar(30))
insert @t values('josh@yahoo.com'),
                ('carmine32@hotmail.com'),
                ('zehmaneh@yahoo.com') 

select stuff(email, 1, charindex('@', email), 'Test@') 
from @t

結果:

Test@yahoo.com
Test@hotmail.com
Test@yahoo.com
于 2012-09-11T14:28:48.803 に答える
2

あなたが使用することができSUBSTRINGますCHARINDEX

UPDATE Email set email = 
    'test' + SUBSTRING(email, CHARINDEX('@',email), LEN(email))

フィドル:http ://sqlfiddle.com/#!3/0face / 6/0

于 2012-09-11T14:17:18.620 に答える
1

あなたは出来る

select 'test' + substring(fld, charindex('@', fld), len(fld))
于 2012-09-11T14:15:56.527 に答える