日期:2014-05-17  浏览次数:20459 次

求助:如何使用SQL语句替代指定位数指定字符串
     各位CSDN大神们大家好,我是个对SQL语句不懂的菜鸟,在这里请求帮助。
   
     我这里有大概一万多的字符串,想将指定位数的指定字符串进行替换,比如这串字符“TBS00539B7500XXXL”其中的"XXXL"替换成"3X",只要是我这些字符串第10-13位出现的是“7500”,那么就替换成“AA,”第14-17位出现的是"XXXL",那么就替换成"3X”,并返回为"TBS00539BAA3X"
这样该怎么写呢? 

      急需帮助,万分感谢

    

------解决方案--------------------
这个函数replace(),你会用吗?只要你清楚你的规则,用这个函数批量替换即可拉。
------解决方案--------------------
会有别的位置也出现7500或者XXXL吗?如果不会直接用replace函数
select replace(replace(col,'7500','AA'),'XXXL','3X') from tb

如果会在其他地方出现,需要用stuff函数
select stuff(col,14,4,'3X') from tb where substring(col,14,4)='XXXL'
select stuff(col,10,4,'AA') from tb where substring(col,10,4)='7500'