userID,roleID
47     39,34,21,58   
48     35,34,58userID   roleID
47      39,34,21,58,35
48     把48里roleID里的字段,不重复的更新到47roleID 里。

解决方案 »

  1.   

    declare @tmp varchar(8000)
    declare @tmp1 varchar(8000)
    declare @tmp2 varchar(1000)
    select @tmp ='39,34,21,58' --roleid from table where userid = 48
    select @tmp1 = '35,34,58'--roleid from table where userid = 47while charindex(',',@tmp1+',') >0 and len(@tmp1) > 0
    begin
      set @tmp2 = substring(@tmp1,1,charindex(',',@tmp1+',')-1)
      if charindex(@tmp2 +',' ,@tmp) = 0 
            set @tmp = @tmp + ','+@tmp2
      
      set @tmp1 = substring(@tmp1,charindex(',',@tmp1+',')+1,len(@tmp1+',') - charindex(',',@tmp1+','))endselect @tmp/*----------------
    39,34,21,58,35
    */