请楼主自己去看roy_88的合并整理贴。
有2000和2005中的方法:
http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html我以前也整理过,不过只限于2000
http://topic.csdn.net/u/20080123/18/9731d130-0d4b-4c11-8d89-f2c3ca331f0c.html

解决方案 »

  1.   

    7900105    A;B;C;E --为什么E要并加这里呢,不是7900106 吗
      

  2.   

    DROP TABLE #tCREATE TABLE #t(tel VARCHAR(7), r varCHAR(1))INSERT #t VALUES('7900100', 'A')
    INSERT #t VALUES('7900100', 'B')
    INSERT #t VALUES('7900102', 'C')
    INSERT #t VALUES('7900103', 'D')
    INSERT #t VALUES('7900104', 'E')
    INSERT #t VALUES('7900105', 'A')
    INSERT #t VALUES('7900105', 'B')
    INSERT #t VALUES('7900105', 'C')
    INSERT #t VALUES('7900105', 'E')declare @sql varchar(8000)
    set @sql = 'select tel,'
    select @sql = @sql + '+['+r+']' from (select distinct r from #t) as a 
    set @sql = @sql+ '[r] from (select tel '
    select @sql = @sql + ',max(case r when ''' + r + ''' then r+'''+';'+''' else '''' end) [' + r + ']'
    from (select distinct r from #t) as a
    print @sql
    set @sql = @sql + ' from #t group by tel) b'
    exec(@sql) 我自己的写的,跟各位一比,差远了