我用行转列后 表格式如下 
ID  A  B   C
1   3  B1  C1  B2 C2  B8 C9 
2   3  B2  C2  NULL NULL
2   3  B8  C9  NULL NULL
3   2  B3  C3  B4 C3     
4   2  B4  C3  NULL,NULL  注列数是未知的 就是 A中可能有很多个3重复
如何从上表筛选出
我想取出结果表是 
1   3  B1  C1  B2  C2  B8 C9 
3   2  B3  C3  B4  C3

解决方案 »

  1.   

    select * from tb where B is not null
      

  2.   

    个人感觉 楼主没把条件说清楚 
    毕竟上面的数据太少 只能说是测试数据。
    还是把详细条件说出来 才能得到正确的SQL。
      

  3.   

    select top 1 *
    from tb ,( 
    select min(id) as id from tb 
    group by A) ta
    where tb.A=ta.A AND tb.B=ta.B
      

  4.   

    --把结果写入临时表中
    select * from #tb where  id=(select min(id) from #tb)
      

  5.   

    ID A B C D   E  F   G  l (列名) 以下对应数据
    1 3 B1 C1 B2 C2 B8 C9  
    2 3 B2 C2 NULL NULL
    2 3 B8 C9 NULL NULL
    3 2 B3 C3 B4 C3   
    4 2 B4 C3 NULL,NULL   注 列数是未知的 就是 A中可能有很多个3重复
    当条件 A字段=3和2的 结果如下
    1 3 B1 C1 B2 C2 B8 C9  
    3 2 B3 C3 B4 C3
      

  6.   

    顶下 补充 
    我想取出结果表是  
    1 3 B1 C1 B2 C2 B8 C9  
    3 2 B3 C3 B4 C3
      

  7.   

    帮忙看看 问题重复下
    表A 
    ID A B C  D  E  F  G (列名) 以下对应数据
    1 3 B1 C1 B2 C2 B8 C9  
    2 3 B2 C2 NULL NULL NULL NULL
    2 3 B8 C9 NULL NULL NULL NULL
    3 2 B3 C3 B4 C3 NULL NULL  
    4 2 B4 C3 NULL,NULL NULL NULL  
    结果
    1 3 B1 C1 B2 C2 B8 C9   
    3 2 B3 C3 B4 C3