アップデートでのT-SQL文字列の置換


83

列の値を更新する必要があります。既存の値に対して部分文字列の置換が行われます。

例:

データにはabc@domain1pqr@domain2などが含まれます。

@domain2置き換えられるように値を更新する必要があります@domain1


各列にはいくつのメールアドレスがありますか?abc @ domain1とpqr @ domain2は同じ列にありますか?
dana 2010

ええ-彼らは同じ列にある...
Sekhar

回答:


151

REPLACEの構文:

REPLACE(string_expression、string_pattern、string_replacement)

したがって、必要なSQLは次のようになります。

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

1
私の場合、二重引用符を一重引用符に置き換える必要がありました。私は、使用される以下のREPLACE([ColumnValue]を、「"」、『』『』)の端部は、4つの単一引用符である。。
ダニエルバトラー

11

誰かが気にするなら、のためNTEXTに、次のフォーマットを使用してください:

SELECT CAST(REPLACE(CAST([ColumnValue] AS NVARCHAR(MAX)),'find','replace') AS NTEXT) 
    FROM [DataTable]

4
そのステートメント自体は更新を実行しません。次の手順を実行する必要があります。UPDATE[DataTable] SET SET [ColumnValue] = CAST(REPLACE(CAST([ColumnValue] AS NVARCHAR(MAX))、 'domain2'、 'domain1')AS NTEXT)FROM [DataTable]
Adamねえ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.