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

sql server 字符串替换问题
如题
字符串"1,2,3,12,16","2,3,1,12,4,16","16,2,3,4,12,1"中的1替换城5,12和16不变。
------最佳解决方案--------------------
declare @str varchar(20)='1,16,2,3,4,12,1,2,1'
select substring(REPLACE(','+@str+',',',1,',',5,'),2,LEN(@str))
------其他解决方案--------------------
根据你的数据,不能单纯使用1,而要使用“1,”,否则12也会编程52
DECLARE @a VARCHAR(100)
 SET @a='1,2,3,12,16'
 SELECT REPLACE(@a,'1,','5,')
 /*
 ----------------------------------------------------------------------------------------------------------------
 5,2,3,12,16
 
 (1 行受影响)
 
 */

------其他解决方案--------------------
declare @str  varchar(255) 
set @str = '1,2,3,12,16'
select @str= ','+@str+','
select left(replace(@str,',1,','5,'),len(replace(@str,',1,','5,'))-1)
   
------其他解决方案--------------------
null