web-dev-qa-db-fra.com

T-SQL string remplace dans Update

Je dois mettre à jour les valeurs d'une colonne, en remplaçant une sous-chaîne sur les valeurs existantes.

Exemple:

Les données contiennent abc@domain1, pqr@domain2 etc.

Je dois mettre à jour les valeurs telles que @domain2 est remplacé par @domain1.

74
Sekhar

La syntaxe pour REMPLACE :

REPLACE (string_expression, string_pattern, string_replacement)

Pour que le SQL dont vous avez besoin soit:

UPDATE [DataTable] SET [ColumnValue] = REPLACE([ColumnValue], 'domain2', 'domain1')
137
Kofi Sarfo

Si quelqu'un s'en soucie, pour NTEXT, utilisez le format suivant:

SELECT CAST(REPLACE(CAST([ColumnValue] AS NVARCHAR(MAX)),'find','replace') AS NTEXT) 
    FROM [DataTable]
11
Tawani
update YourTable
    set YourColumn = replace(YourColumn, '@domain2', '@domain1')
    where charindex('@domain2', YourColumn) <> 0
6
Joe Stefanelli