我有一个sql变量:

SET @TSQL = 'this is test string [this text may vary] other text'

现在我想用我自己的不同文本替换子字符串“[此文本可能有所不同]”。
有人能帮我吗?请记住,我要替换的子字符串不是静态的,而是动态的,可能会有所不同。
这看起来和我的问题很相似,但只是针对特定的角色。我需要前后两个角色。
How do I replace a substring of a string before a specific character?

最佳答案

把“[”前面的子字符串和“]右边的子字符串相加

declare @TSQL varchar(100)
declare @R varchar(100)
SET @TSQL = 'this is test string [this text may vary] other text'
SET @R = 'MySubstitute'
Select Left(@TSQL,Charindex('[',@TSQL)-1) + @R + RIGHT(@TSQL,Charindex(']',REVERSE(@TSQL))-1)

10-06 05:51