当字符串长度为动态时替换字符串文本的特定部分

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

我正在尝试使用sql进行字符串操作,该操作会在'str ['之后更改文本(已经使用dbo.function从表中删除了字符串)。

原始字符串如下:

2.2.2.3[1.2.3] - 4.3.2.1 - t+ 3 - kb - str[8.6.5.4.3]

结果为:

2.2.2.3[1.2.3] - 4.3.2.1 - t+ 3 - kb - str[10.8.6.5.4]

字符串的长度通常可以大于或小于'str ['之前的字符长度,并且由于整个字符串中都有方括号,因此我不能将其用作固定内容。只是想知道是否有人提出建议。

sql
2个回答
0
投票

以下脚本考虑了MSSQL编写,但是您可以将其他逻辑应用相同的逻辑,但语法有所更改-

注意:仅当目标字符串是源字符串的最后一部分且新字符串固定为'str [10.8.6.5.4]']时,此方法才有效

DECLARE @S VARCHAR(MAX) = '2.2.2.3[1.2.3] - 4.3.2.1 - t+ 3 - kb - str[8.6.5.4.3]'

SELECT LEFT (@S, CHARINDEX('str[', @S,0) - 1) + 'str[10.8.6.5.4]'

0
投票

假设您使用的是SQL Server,以下包含reverse()charindex()replace()substring()parsename()的查询可以一起使用:

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