1. ホーム
  2. sql

[解決済み] 文字列の一部をUPDATEおよびREPLACEする。

2022-03-19 19:52:34

質問

2つのカラムを持つテーブルがあります。 IDValue . 2列目の文字列の一部を変更したい。

テーブルの例です。

ID            Value
---------------------------------
1             c:\temp\123\abc\111
2             c:\temp\123\abc\222
3             c:\temp\123\abc\333
4             c:\temp\123\abc\444

ここで 123\ の中に Value の文字列は必要ありません。試しに UPDATEREPLACE :

UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4

スクリプトを実行すると、SQL Serverはエラーを報告しませんが、何も更新されません。なぜでしょうか?

解決方法を教えてください。

にはワイルドカードは必要ありません。 REPLACE - は、第2引数に入力された文字列を検索するだけなので、以下のようにすればうまくいくはずです。

UPDATE dbo.xxx
SET Value = REPLACE(Value, '123', '')
WHERE ID <=4

置換するカラムの型が text または ntext を使用する場合は、nvarcharにキャストする必要があります。

UPDATE dbo.xxx
SET Value = REPLACE(CAST(Value as nVarchar(4000)), '123', '')
WHERE ID <=4