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