用Sql存储过程完成,“1,2,3-4,6,7,8-10”,替换为“1,2,3,4,6,7,8,9,10”

来源:互联网 发布:福特级航母知乎 编辑:程序博客网 时间:2024/05/29 12:37
declare @s varchar(1000)
declare @s1 varchar(1000)
declare @s2 varchar(4000)
declare @inti int
declare @intj int
declare @intk int
declare @currently varchar(500)
declare @intposition int
set @s='2,3-4,6,7,8-14,'
set @s1=@s
set @s2=''
set @inti=0
set @intj=0
while charindex(',',@s1)>0
begin
 set @currently=left(@s1,charindex(',',@s1)-1)
 set @s1=right(@s1,len(@s1)-charindex(',',@s1))
 if charindex('-',@currently)>0
 begin
  set @inti=left(@currently,charindex('-',@currently)-1)
  set @intj=right(@currently,len(@currently)-charindex('-',@currently))
  while @inti<@intj
  begin
      set @s2=@s2+ ltrim( convert(varchar(20),@inti)) +','
      set @inti=@inti+1
  end
  set @s2=@s2+ ltrim( convert(varchar(20),@inti)) +','
        end
 else
    set @s2=@s2 + @currently +','
end
select @s2
原创粉丝点击