Table表如下: 
a  b  c 
1  2  3 
1  2  4 
2  3  4 
2  3  5 
2  3  6 
4  5  6 请问如何用sql语句得到如下效果: 
a  b  c 
1  2  3,4 
2  3  4,5,6 
4  5  6 谢谢

解决方案 »

  1.   


    CREATE TABLE tb(col1 varchar(10),col2 int)
    INSERT tb SELECT 'a',1
    UNION ALL SELECT 'a',2
    UNION ALL SELECT 'b',1
    UNION ALL SELECT 'b',2
    UNION ALL SELECT 'b',3--合并处理
    SELECT col1,col2=CAST(col2 as varchar(100)) 
    INTO #t FROM tb
    ORDER BY col1,col2
    DECLARE @col1 varchar(10),@col2 varchar(100)
    UPDATE #t SET 
        @col2=CASE WHEN @col1=col1 THEN @col2+','+col2 ELSE col2 END,
        @col1=col1,
        col2=@col2
    SELECT * FROM #t
    /*--更新处理后的临时表
    col1       col2
    ---------- -------------
    a          1
    a          1,2
    b          1
    b          1,2
    b          1,2,3
    --*/
    --得到最终结果
    SELECT col1,col2=MAX(col2) FROM #t GROUP BY col1
    /*--结果
    col1       col2
    ---------- -----------
    a          1,2
    b          1,2,3
    --*/取自SQL版,LZ对照改一下就行了
      

  2.   

    楼主应该去ms-sql板块问,高手超多