刚才给的替换的不对。。
DECLARE @str VarChar(1000)
Set @str = '213,12311213,2131'
Select isnull(stuff(Replace(','+@str,',213',''),1,1,''),'')
如果是这样。得到的结果是:
123112131
我要是结果:
12311213,2131
------最佳解决方案--------------------
create function f_name(@str1 varchar(1000),@str2 varchar(20))
returns varchar(1000)
as
begin
declare @str varchar(1000)
select @str='',@str1=@str1+','
while charindex(',',@str1)>1
begin
if(left(@str1,charindex(',',@str1)-1)=@str2)
set @str1=right(@str1,len(@str1)-charindex(',',@str1))
else
begin
select @str=@str+','+left(@str1,charindex(',',@str1)-1),
@str1=right(@str1,len(@str1)-charindex(',',@str1))
end
end
return stuff(@str,1,1,'')
end
DECLARE @str VarChar(1000) ,@str2 varchar(20)
select @str = '1,11,222,213,211,2341,342,34531' ,@str2='213'
select dbo.f_name(@str,@str2)
------其他解决方案--------------------
DECLARE @str VarChar(1000)
Set @str = '213,12311213,2131'
select substring(Replace(','+@str+',',',213,',''),2,len(Replace(','+@str+',',',213,',''))-2)
------其他解决方案--------------------
我试试。你的头像是:我爱罗吧。。
大哥。你能写个函数吗??
函数传递两参数。一个原字符串。一个要替换的字符串。
------其他解决方案--------------------
不行额。。
代码:
DECLARE @str VarChar(1000)
Set @str = '1,2,3,4,11,123,121'
select substring(Replace(','+@str+',',',1,',''),2,len(Replace(','+@str+',',',1,',''))-2)
得到的结果:
,3,4,11,123,121
实际要得到的结果:
2,3,4,11,123,121
大哥。。我的字符串
1、不是固定的。
2、长度也不是固定的。
------其他解决方案--------------------
你是要咋个整?出现213的位置都替换成'' ??
------其他解决方案--------------------
不是。其实就是替换指定的字符串。。
字符串:1,2,3,4,11,123,121。我要替换1.结果应该是:2,3,4,11,123,121
而不是:2,3,4,,23,2
------其他解决方案--------------------
最后的多打了个逗号。