Reemplazar cadena T-SQL en la actualización


Necesito actualizar los valores de una columna, con un reemplazo de subcadena que se realiza en los valores existentes.

Ejemplo:

Los datos contienen abc@domain1, pqr@domain2 etc.

Necesito actualizar los valores de tales que @domain2 se reemplaza con @domain1.

Author: Jon Schneider, 2010-12-04

3 answers

La sintaxis para REEMPLAZAR :

REPLACE (string_expression,string_pattern,string_replacement)

Para que el SQL que necesita sea:

UPDATE [DataTable] SET [ColumnValue] = REPLACE([ColumnValue], 'domain2', 'domain1')
 125
Author: ofraski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-19 09:59:51

Si a alguien le importa, para NTEXT, use el siguiente formato:

SELECT CAST(REPLACE(CAST([ColumnValue] AS NVARCHAR(MAX)),'find','replace') AS NTEXT) 
    FROM [DataTable]
 9
Author: Tawani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-07 15:54:30
update YourTable
    set YourColumn = replace(YourColumn, '@domain2', '@domain1')
    where charindex('@domain2', YourColumn) <> 0
 4
Author: Joe Stefanelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-03 22:41:41