2013-09-02 6 views
12

SQL Server 2008データベース内にMeterと呼ばれるテーブルがあります。このテーブルにはNameという列があります。列の部分文字列を更新します。

Nameの各エントリには、次の接頭辞ZAA\があります。この接頭辞をZAA_に変更して、列内の残りのテキストに影響を与えないようにしたいと思います。

答えて

15
UPDATE Meter 
SET Name = 'ZAA_' + SUBSTRING(Name, 4, LEN(Name)) 
WHERE SUBSTRING(Name, 1, 4) = 'ZAA\' 

編集:

または@Damien_The_Unbliever状態として、インデックスを使用する:あなたのコメントから

UPDATE Meter 
SET Name = 'ZAA_' + SUBSTRING(Name, 4, LEN(Name)) 
WHERE Name LIKE 'ZAA\%' 

EDIT

を、追加の\を修正するためにこの文を試してみてください:

UPDATE Meter 
SET Name = 'ZAA_' + SUBSTRING(Name, 5, LEN(Name)) 
WHERE Name LIKE 'ZAA_\%' 
+1

'名LIKE 'ZAAの\%''少なくともインデックスは(存在する場合)を更新する行を見つけることができるようになります。 –

+0

@Damien_The_Unbeliever - 追加されました。ありがとう。 –

+0

'構文が正しくない\' – Romesh

1

MYSQL:

UPDATE Meter 
SET Name = CONCAT('ZAA' ,'_', SUBSTRING(Name, 4, LENGTH(Name))) 
WHERE Name LIKE 'ZAA\%' 
関連する問題