我有一个由一列组成的表,每行有一个100个字符的字符串。添加第二列以保存结果。我需要修改某些修复位置元素并计划执行以下操作:
UPDATE myData
SET newData = REPLACE(oldData,SUBSTRING(eftnwsfull, 16,2),'OC')
位置16,2的元素是'17'。但是,如果字符串的其他部分(不在位置16,2)恰好是'17',那么也会变为'OC'。
我很难理解这是如何发生的,因为我正在指定替换位置的确切位置。我做错了什么?
答案 0 :(得分:3)
尝试STUFF
UPDATE myData
SET newData = STUFF(oldData, 16, 2, 'OC')
答案 1 :(得分:0)
以下是两种方法(请测试,因为偏移可能是一次性的)..
SET newdata = SUBSTRING(oldData, 1, 15) + 'OC' + SUBSTRING(oldData, 18, LEN(oldData) - 17)
或
SET newdata = LEFT(oldData, 15) + 'OC' + RIGHT(oldData, LEN(oldData) - 17)