我正在尝试使用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 ['之前的字符长度,并且由于整个字符串中都有方括号,因此我不能将其用作固定内容。只是想知道是否有人提出建议。
以下脚本考虑了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]'
假设您使用的是SQL Server,以下包含reverse()
,charindex()
,replace()
,substring()
和parsename()
的查询可以一起使用: