带有通配符的SQL Replace命令

基本上我正在尝试替换括号内的字符串中的所有内容.

因此,例如’123 [1abc] abc’的字符串将变为’123 [xx] abc’

select replace(string,'[%]','[xx]') as string2 from table1

当然,除了不起作用.

括号内的值总是不同的,找到所有个体可能性根本不可行.此外,括号内的某些值也出现在括号内,但我只希望它们在内部更改.

我在Microsoft SQL Server中工作,如果这有任何区别.

最佳答案 假设只有一个这样的表达式并且方括号只出现一次,你可以使用stuff()来构造字符串:

select stuff(str,
             charindex('[', str) + 1,
             charindex(']', str) - charindex('[', str) - 1,
             'xx')
点赞