2016-08-25 1 views
0

はどのように私は列の一部を更新することができます置き換える文字列で更新する方法:SQL Serverは:

UPDATE Product 
SET Title = REPLACE(Title , 'mn%', 'za%') 
WHERE (Title LIKE N'mn%') 

は、1列のデータを考えてみましょうmnfmndで、代わりに+ zafmnd

+0

それはいつも最初の2文字ですか? – scsimon

+0

@scsimonはい、常に先頭文字です – Mohi

+2

クエリは、タイトルの文字列リテラルmn%のすべてのインスタンスを置換しようとしています。私はそれがあなたが望むものだとは思わない。これはSTUFFを使うのに最適な場所のようです。 –

答えて

3

を示唆したように、私はこのためにstuff()を使用するように傾けられるSTUFFを使用してみてください目的:

update product 
    set title = stuff(title, 1, 2, 'za') 
    where title like 'mn%'; 
+0

ありがとう、それは動作します:)しかし、私は1つの答えを選択する必要があります – Mohi

2

使用権に変更しなければなりません。 .. %は置換のワイルドカードではありません。

UPDATE  Product 
SET   Title = 'za'+right(len(title)-2) 
WHERE  (Title LIKE N'mn%') 

包みなさいものは、SQL Serverのバージョンではない...

+0

ありがとう、それは動作します:) – Mohi

2

はショーンが

update Product 
set Title = STUFF(Title,1,2,'za') 
where title like 'mn%' 
+0

ありがとう、それは動作します:)しかし、私は1つの答えを選択する必要があります申し訳ありません – Mohi

2
create table #t (title varchar(16)) 
insert into #t (title) values ('abcdef'),('defghi') 

UPDATE  #t 
SET   title = stuff(Title , 1,2,'za') 
WHERE  (Title LIKE N'ab%') 

select * from #t 
+0

ありがとうあなた、それは動作します:)しかし、申し訳ありませんが1つの回答を選択する必要があります – Mohi