在SQL中的特定位置插入char中的单词

时间:2013-07-16 13:50:05

标签: sql insert char

我想在SQL中插入一个新单词,其中包含另一个特定单词后面的文本,例如:我的文字“我的车是黑色的”,我想在My之后插入new,新文本应该是:我的新车是黑色的。

2 个答案:

答案 0 :(得分:1)

您没有提及数据库,所以我会回答SQL Server。碰巧有一个名为stuff()的函数在这种情况下确实有用。以下是代码:

with t as (select 'My car is black' as col)
select STUFF(col, charindex('My', col) + LEN('My') + 1, 0, 'new ')
from t;

通过提取字符串,您可以在其他数据库中执行等效操作。但是,字符串函数往往因数据库而异,因此没有任何形式适用于所有(甚至几乎所有)数据库。

编辑:

根据您的描述,我认为以下可能是您真正想要的:

select replace(col, 'sticker', 'sticker SHOCK')
from t;

这适用于大多数数据库。您也可以将此作为更新:

update t
    set col = replace(col, 'sticker', 'sticker SHOCK')
    where col like '%sticker%';

答案 1 :(得分:0)

您需要将短语的左右部分连接到要插入的新单词。根据DBMS,您可以使用各种功能来确定左右部分。

在SQL Server中,您可以执行以下操作:

UPDATE tbl SET phrase = LEFT(phrase, 3) + 'new ' + RIGHT(phrase, 12);

哪会产生

|              PHRASE |
-----------------------
| My new car is black |

Demo