select @start=1 
select @partnr='abcdefghieeefffgggeeeefedef' select @partnr=stuff(@partnr,@start,0,',') 
select @len=len(@partnr) while @len>=0 
--and @start <len(@partnr) 
begin 
select @start=@start+4 
select @partnr=stuff(@partnr,@start,0,',') 
select @len=@len-4 
end 
print @partnr 

解决方案 »

  1.   


    declare @partnr varchar(100), 
    @start int, 
    @len int 
    select @start=1 
    select @partnr='abcdef' select @partnr=stuff(@partnr,@start,0,',') 
    select @len=len(@partnr) while @len>=0 
    --and @start <len(@partnr) 
    begin 
    select @start=@start+4 
    select @partnr=stuff(@partnr,@start,0,',') 
    select @len=@len-4 
    end 
    print @partnr 
    --你再试试.
      

  2.   

    declare @partnr varchar(100)
    declare @result varchar(100)
    set @result = ''
    set @partnr='abcdefghieeefffgggeeeefedef' while len(@partnr) > 0 
    begin 
          set @result = @result + ',' + left(@partnr , 3)
          set @partnr = right(@partnr , len(@partnr) - 3)
    end 
    print @result/*
    ,abc,def,ghi,eee,fff,ggg,eee,efe,def
    */
      

  3.   


    declare @partnr varchar(100), 
    @start int, 
    @len int 
    select @start=1 
    select @partnr='abcdefghieeefffgggeeeefedef' 
    select @len=len(@partnr)while @len>0 
    begin 
    select @partnr=stuff(@partnr,@start,0,',') 
    select @len=@len-3
    select @start=@start+4 
    end 
    print @partnr /*
    ,abc,def,ghi,eee,fff,ggg,eee,efe,def
    */
      

  4.   

    --如果字符串位数不是3的倍数,得加一句.declare @partnr varchar(100)
    declare @result varchar(100)
    set @result = ''
    set @partnr='abcdefghieeefffgggeeeefedef1' while len(@partnr) >= 3 
    begin 
          set @result = @result + ',' + left(@partnr , 3)
          set @partnr = right(@partnr , len(@partnr) - 3)
    end 
    set @result = @result + ',' + @partnr
    print @result/*
    ,abc,def,ghi,eee,fff,ggg,eee,efe,def,1
    */
      

  5.   

    declare @partnr varchar(100),
    @start int,
    @len int
    select @start=1
    select @partnr='abcdefghieeefffgggeeeefedef'select @partnr=stuff(@partnr,@start,0,',')
    select @len=len(@partnr)select @start=@len/3+1
    while @start>2
    begin
    select @start=@start-1
    select @partnr=stuff(@partnr,@start*3-1,0,',')
    end
    print @partnr---
    ,abc,def,ghi,eee,fff,ggg,eee,efe,def
      

  6.   


    declare @partnr varchar(100), @start int, @len int 
    select @start=1 
    select @partnr='abcdefghieeefffgggeeeefedefyy' select @partnr=stuff(@partnr,@start,0,',') 
    select @len=len(@partnr) 
    while @len>0 
    --and @start <len(@partnr) 
    begin 
      select @len=@len-3 
      select @start=@start+4 
      if (@len>1)
      begin
        select @partnr=stuff(@partnr,@start,0,',') 
      end
    end 
    print @partnr 
    ,abc,def,ghi,eee,fff,ggg,eee,efe,def,yy