我需要更新列的值,并在现有值上进行子字符串替换。
示例:
数据包含abc@domain1
,pqr@domain2
等。
我需要更新值,以便将@domain2
替换为@domain1
。
答案 0 :(得分:133)
REPLACE的语法:
REPLACE(string_expression,string_pattern,string_replacement)
所以你需要的SQL应该是:
UPDATE [DataTable] SET [ColumnValue] = REPLACE([ColumnValue], 'domain2', 'domain1')
答案 1 :(得分:11)
如果有人关心,NTEXT
使用以下格式:
SELECT CAST(REPLACE(CAST([ColumnValue] AS NVARCHAR(MAX)),'find','replace') AS NTEXT)
FROM [DataTable]
答案 2 :(得分:5)
update YourTable
set YourColumn = replace(YourColumn, '@domain2', '@domain1')
where charindex('@domain2', YourColumn) <> 0