我想在 SQL 中在一个列中插入一个新词,在另一个特定词之后有文本,例如:我有文本“我的车是黑色的”,我想在新文本 My 之后插入新词应该是:我的新车是黑色的。
问问题
1779 次
2 回答
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%';
于 2013-07-16T13:56:55.133 回答
0
您需要将短语的左右部分连接到要插入的新单词。根据 DBMS,您将使用各种函数来确定左右部分。
在 SQL Server 中,您可以执行以下操作:
UPDATE tbl SET phrase = LEFT(phrase, 3) + 'new ' + RIGHT(phrase, 12);
哪个会产生
| 短语 | ---------------------- | 我的新车是黑色的 |
于 2013-07-16T13:52:41.197 回答