SQL:替换以某些字符串开头和结尾的字符串

问题描述 投票:0回答:1

我需要用许多行替换名为“Description”的表列中的某些字符串。连续的描述之一可能如下所示:

Apple iPhone 12 64GB 适用于 AT&T。包括 SIM 卡和 USB 充电线,无其他配件。外观状况:良好,很少有轻微痕迹或划痕。

我需要用另一个字符串替换从“Inincludes”到“accessories”的字符串,所以它看起来像这样:

Apple iPhone 12 64GB 适用于 AT&T。仅包括电话。外观状况:良好,很少有轻微痕迹或划痕。

因为行中“包含”和“配件”之间的单词可能不同,所以我无法使用精确的短语来匹配和替换。我想要替换的子字符串始终以“Includes”开头并以“accessories”结尾,因此我必须使用这些单词作为参考来替换它们。请指教。

我试过了

Update Descriptions 
SET Description = REPLACE (Description, ***, ***)

但不知道该把什么放进***

sql string replace
1个回答
0
投票

对于 SQL Server,您可以使用以下内容:

Update Descriptions 
SET Description = CHARINDEX(description,'Includes'),
LEFT(description, CHARINDEX('Includes',description)+7) + ' phone only.' + 
RIGHT(description,DATALENGTH(description)- 
CHARINDEX('accessories',description)-11)

WHERE CHARINDEX('Includes',description)>0 
AND (CHARINDEX('accessories',description)>CHARINDEX('Includes',description))

where 子句确保只有包含单词“Includes”后跟“accessories”的字符串才会被更改

© www.soinside.com 2019 - 2024. All rights reserved.