【发布时间】:2011-05-20 00:37:46
【问题描述】:
我需要更新列的值,对现有值进行子字符串替换。
例子:
数据包含abc@domain1、pqr@domain2等。
我需要更新这些值,以便将 @domain2 替换为 @domain1。
【问题讨论】:
-
每列有多少个电子邮件地址? abc@domain1 和 pqr@domain2 在同一列吗?
-
是的 - 他们在同一列..
我需要更新列的值,对现有值进行子字符串替换。
例子:
数据包含abc@domain1、pqr@domain2等。
我需要更新这些值,以便将 @domain2 替换为 @domain1。
【问题讨论】:
REPLACE 的语法:
替换(字符串表达式,字符串模式,字符串替换)
所以你需要的 SQL 应该是:
UPDATE [DataTable] SET [ColumnValue] = REPLACE([ColumnValue], 'domain2', 'domain1')
【讨论】:
如果有人关心NTEXT,请使用以下格式:
SELECT CAST(REPLACE(CAST([ColumnValue] AS NVARCHAR(MAX)),'find','replace') AS NTEXT)
FROM [DataTable]
【讨论】:
update YourTable
set YourColumn = replace(YourColumn, '@domain2', '@domain1')
where charindex('@domain2', YourColumn) <> 0
【讨论】: