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)

我错过了“无”之后的逗号 (,)。

现在我有数据

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,

即在无后添加逗号(,)。

知道如何完成这项工作吗?

用于测试的 SQL Fiddle

注意:字段中原始数据的长度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 :

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