更新中的T-SQL字符串替换

Sek*_*har 77 t-sql string replace

我需要更新列的值,并在现有值上执行子字符串替换.

例:

数据包括abc@domain1,pqr@domain2等等.

我需要更新@domain2替换为的值@domain1.

Kof*_*rfo 141

REPLACE的语法:

REPLACE(string_expression,string_pattern,string_replacement)

所以你需要的SQL应该是:

UPDATE [DataTable] SET [ColumnValue] = REPLACE([ColumnValue], 'domain2', 'domain1')
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,我需要用单引号替换双引号。我使用了下面的 REPLACE([ColumnValue], '"', '''')。最后是四个单引号。 (2认同)

Taw*_*ani 11

如果有人关心,请NTEXT使用以下格式:

SELECT CAST(REPLACE(CAST([ColumnValue] AS NVARCHAR(MAX)),'find','replace') AS NTEXT) 
    FROM [DataTable]
Run Code Online (Sandbox Code Playgroud)

  • 该声明本身不会执行更新.您需要执行以下操作:UPDATE [DataTable] SET SET [ColumnValue] = CAST(REPEL(CAST([ColumnValue] AS NVARCHAR(MAX)),'domain2','domain1')AS NTEXT)FROM [DataTable] (4认同)

Joe*_*lli 6

update YourTable
    set YourColumn = replace(YourColumn, '@domain2', '@domain1')
    where charindex('@domain2', YourColumn) <> 0
Run Code Online (Sandbox Code Playgroud)

  • 包含本答案中的where子句是否提供了超出公认答案的效率增益? (2认同)