1 declare @startpos int=1 --开始位置 2 declare @nextpos int --下一位置 3 declare @spliter char=',' --分割符 4 declare @str varchar(128)='111,222,333,444,555,666,777' --字符串 5 declare @returnvalue varchar(3) --截取的字符串 6 7 while(@startpos<=LEN(@str)) 8 begin 9 select @nextpos=CHARINDEX(@spliter,@str,@startpos) 10 if(@nextpos=0 or @nextpos is null) 11 begin 12 set @nextpos=LEN(@str)+1 13 set @returnvalue=RTRIM(LTRIM(SUBSTRING(@str, @startpos, @nextpos - @startpos))) 14 end 15 else 16 begin 17 set @returnvalue=RTRIM(LTRIM(SUBSTRING(@str, @startpos, @nextpos - @startpos))) 18 end 19 20 SELECT @startpos = @nextpos+1 21 print(convert(varchar(10),@returnvalue)) 22 --print(convert(varchar(10),@startpos)) 23 --print(convert(varchar(10),@nextpos)) 24 end