试试Select Max(A) As A,B from 表 Group By B

解决方案 »

  1.   

    delete table  where a not in (select max(a) from table group by b)
      

  2.   

    补充:在A和B列后还有其他列,且同一重复BB行中后面项内容不相同。
    表中有两列,A和B,
    A      B          C
    12     QQQ        vf
    13     QQQ        efrewgf
    14     AAA        ewfewfbb
    15     BBB        e32r3
    16     BBB        ewf32f
    想祛除B中重复的项,原则是如果B中某几项重复,则取在A中值最大的那一项,请高手指教!谢谢了
      

  3.   

    不好意思,又漏了点,其实在A中也有重复。
    表中有两列,A和B,
    A      B          C
    12     QQQ        vf
    12     FFF        2133
    13     QQQ        efrewgf
    14     AAA        ewfewfbb
    15     BBB        e32r3
    16     BBB        ewf32f
    16     www        irt 想祛除B中重复的项,原则是如果B中某几项重复,则取在A中值最大的那一项,请高手指教!谢谢了
      

  4.   

    Delete  from 表 Where A Not In(Select Max(A) As A Group By B)
      

  5.   

    千万别再改了啊。^_^--建表
    Create table 表1
    (A Int,
    B Varchar(10),
    C Varchar(10)
    )
    GO
    --插入数据
    Insert 表1 Values(12,'QQQ','vf')
    Insert 表1 Values(12,'FFF','2133')
    Insert 表1 Values(13,'QQQ','efrewgf')
    Insert 表1 Values(14,'AAA','ewfewfbb')
    Insert 表1 Values(15,'BBB','e32r3')
    Insert 表1 Values(16,'BBB','ewf32f')
    Insert 表1 Values(16,'www','irt')
    GO
    --测试
    Select * from 表1Delete from 表1 Where Convert(varchar(10),A)+B Not In (Select Convert(varchar(10),Max(A))+B from 表1 Group by B)Select * from 表1--删除测试环境
    Drop table 表1/*结果
    --删除前
    A B C
    12 QQQ vf
    12 FFF 2133
    13 QQQ efrewgf
    14 AAA ewfewfbb
    15 BBB e32r3
    16 BBB ewf32f
    16 www irt--删除后
    A B C
    12 FFF 2133
    13 QQQ efrewgf
    14 AAA ewfewfbb
    16 BBB ewf32f
    16 www irt
    */