T-SQL строка заменить в обновлении


мне нужно обновить значения столбца, при этом замена подстроки выполняется на существующих значениях.

пример:

данных содержит abc@domain1,pqr@domain2 etc.

мне нужно обновить значения таким образом, что @domain2 заменяется @domain1.

3 66

3 ответа:

синтаксис заменить:

REPLACE (string_expression, string_pattern, string_replacement)

Так что 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