一个字段内容为:A,B,C,D,E,F,J,H,I,J,K,L,M,N,O,P,Q,输出结果为:A,B,C,<A>D,E,F,<A>J,H,I,<A>M,N,O,<A>P,Q,能被3整除的逗号后面加个<A>。

解决方案 »

  1.   

    declare @a varchar(100),@b varchar(100),@i int
    select @a='A,B,C,D,E,F,J,H,I,J,K,L,M,N,O,P,Q,',@b='',@i=0
    while @i<len(@a)/6
    begin 
    set @b=@b+substring(@a,@i*6+1,6)+'<A>'
    set @i=@i+1
    end
    select @b=@b+substring(@a,len(@a)/6*6,len(@a)-len(@a)/6*6)
    select @b
    /*----------------------------------------------------------------------------------------------------
    A,B,C,<A>D,E,F,<A>J,H,I,<A>J,K,L,<A>M,N,O,<A>,P,Q(1 行受影响)
    */
      

  2.   

    高手 您这是以字符串的个数来判断的 不是以逗号判断的呀
     我要是把字段改成这样:
    AAA,ABCB,AC,DDFD,ASE,F,DDJ,RRH,KKI,ASAAAAAJ,QWEK,L,M,ASAAN,OCDS,AAP,Q,
    就没有这样的效果了:AAA,ABCB,AC,<A>DDFD,ASE,F,<A>DDJ,RRH,KKI,<A>ASAAAAAJ,QWEK,L,<A>M,ASAAN,OCDS,<A>AAP,Q,
      

  3.   


    declare @a varchar(100),@b varchar(100),@c varchar(100),@i int
    select @a='A,B,C,D,E,F,J,H,I,J,K,L,M,N,O,P,Q,',@b='',@i=1,@c=@a
    while @i<=len(@a)-len(replace(@a,',',''))
    begin
    if(@i%3=0)
    set @b = @b + substring(@c,1,charindex(',',@c)-1) + '<A>'
    else
    set @b = @b + substring(@c,1,charindex(',',@c)-1)
    set @c = substring(@c,charindex(',',@c)+1,len(@c)-charindex(',',@c))
        set @i=@i+1
    end
    select @b/***************************----------------------------------------------------------------------------------------------------
    ABC<A>DEF<A>JHI<A>JKL<A>MNO<A>PQ(1 行受影响)
      

  4.   

    高手 我的逗号呢 我还必须要保留逗号的呀!
    AAA,ABCB,AC,DDFD,ASE,F,DDJ,RRH,KKI,ASAAAAAJ,QWEK,L,M,ASAAN,OCDS,AAP,Q,
    就没有这样的效果了:AAA,ABCB,AC,<A>DDFD,ASE,F,<A>DDJ,RRH,KKI,<A>ASAAAAAJ,QWEK,L,<A>M,ASAAN,OCDS,<A>AAP,Q,
      

  5.   


    declare @a varchar(100),@b varchar(100),@c varchar(100),@i int
    select @a='A,B,C,D,E,F,J,H,I,J,K,L,M,N,O,P,Q,',@b='',@i=1,@c=@a
    while @i<=len(@a)-len(replace(@a,',',''))
    begin
        if(@i%3=0)
            set @b = @b + substring(@c,1,charindex(',',@c)-1) + ',<A>'
        else
            set @b = @b + substring(@c,1,charindex(',',@c)-1) + ','
        set @c = substring(@c,charindex(',',@c)+1,len(@c)-charindex(',',@c))
        set @i=@i+1
    end
    select @b
      

  6.   

    虽然我不会写,我想思路应该是以逗号作为分隔然后添加<a>吧