2

私はテーブルを作成しました

create table tab (id int, mytext varchar(200));

今私は値を挿入しました

insert into tab values
(1, 'text 11,text 12,'),
(2, 'text 21,text 22,'),
(3, 'text 31,text 32,'),
(4, 'text 41,text 42,');

今、私がやりたかったtext none,のは、テキストの先頭にテキストを追加することです。そのために私はクエリを実行する必要がありました

update tab set mytext = concat('text none,', mytext)

ただし、誤って次のようにクエリを実行しました。

update tab set mytext = concat('text none', mytext)

'none'の後にCOMMA(、)を見逃しました。

今、私は次のようなデータを持っています

1   textnonetext 11,text 12,
2   textnonetext 21,text 22,
3   textnonetext 31,text 32,
4   textnonetext 41,text 42,

私が欲しいのは、上記の出力を次のように変更することです。

1   textnone,text 11,text 12,
2   textnone,text 21,text 22,
3   textnone,text 31,text 32,
4   textnone,text 41,text 42,

つまり、noneの後にcomma(、)を追加します。

これを行う方法はありますか?

テスト用のSQLフィドル

注:mytextフィールドの元のデータの長さは固定されていません。一部のIDでは6、一部のIDでは50です。

4

2 に答える 2

3

これを試してみてください

update tab 
set mytext = concat('text none, ', Replace(mytext, 'text none',''));

SQLFiddleデモ

または、concatを使用する特別な理由がない場合は、単に交換してください

update tab 
set mytext = Replace(mytext, 'text none','text none, ');
于 2012-10-20T14:44:42.850 に答える
2

または、concatも使用せずにreplaceを使用します。

UPDATE tab
SET mytext = REPLACE(mytext, 'text none', 'text none,')
于 2012-10-20T14:45:44.377 に答える