目标:我有字符串“1234432144”我只想用“10”替换前2个4,所以我会得到“1231032144”

有没有办法在 tsql 中做到这一点?

到目前为止,我已经提出了 tsql substring() 函数

substring('1234432144', 4, 2)

它绘制了 44 .. 但是我如何在现有字符串中替换它?

如果我在它周围包装一个替换函数,它会替换字符串中所有出现的 44。

有任何想法吗?

提前致谢。

最佳答案

使用参数化版本进行编辑。

DECLARE @myStr VARCHAR(50)
DECLARE @findStr VARCHAR(50)
DECLARE @replaceStr VARCHAR(50)

SET @myStr = '1234432144'
SET @findStr = '44'
SET @replaceStr = '10'

SELECT STUFF(@myStr, CHARINDEX(@findStr, @myStr), LEN(@findStr), @replaceStr)

关于sql-server - tsql : how to do a substring replace?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2493971/

10-12 14:17