一个简单的Sql问题

seky5211314 2007-08-15 08:16:35
我的数据记录格式为:,3000,3001,|,3000,3002,|3005,3008,|
我现在想要的是:当替换的时候,存储过程传得参数只有,3000,怎么把所有有关,3000,的数据全部替换掉,不单单是替换一个,3000,而是,3000,30001,3000,3002,都要替换掉。怎么处理????急需帮助!!!!
...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
seky5211314 2007-11-29
  • 打赏
  • 举报
回复
呵呵,好久没有上来了,问题解决好就了,谢谢大家
kk19840210 2007-08-15
  • 打赏
  • 举报
回复






declare @str varchar(200)
select @str=',3000,3001,|,3000,3002,|3005,3008,|'

declare @i int
declare @j int

select @i=charindex('3000',@str)
select @j=charindex(',|',@str,@i)
while (@i<>0)
begin
select @str=stuff(@str,@i-1,@j+1,'')
select @i=charindex('3000',@str)
select @j=charindex(',|',@str,@i)
end
select @str


-----结果
3005,3008,|
liuzi123 2007-08-15
  • 打赏
  • 举报
回复
lz说的
当替换的时候,存储过程传得参数只有,3000,怎么把所有有关,3000,的数据全部替换掉,不单单是替换一个,3000,而是,3000,30001,3000,3002,都要替换掉
给出具体的你需要结果例子】
譬如:,3000,3001,|,3000,3002,|3005,3008,|
替换成?
昵称被占用了 2007-08-15
  • 打赏
  • 举报
回复
declare @para varchar(10)
set @para=',3000,'
declare @para1 varchar(10)
set @para1=',4000,'

while exists (
select 1 from tb where fid like '%'+@para+'%'
)

update tb set fid=replace(fid,@para,@para1)
where fid like '%'+@para+'%'

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧