select bId,carrierPos,carrierId=max(carrierId) 
from tb 
group by bId,carrierPos

解决方案 »

  1.   

    可可兄,我的意思是如何得到
      bId carrierPos   carrierId
    XN008C 0 S805760794
    XN008C 1 TP10082591
    XN008C 2 X170123105
    XN008C 3 X171565696
    XN008C 4
    这样的结果,因为我是在做一个交叉表的处理,上面只是我众多数据中找出来的一个,如果按照你目前给的方法,我全不手工去做,显然也不太现实阿,
    我想的是只处理相同行中的数据,并且删除carrierId 是空的行,谢谢
      

  2.   

    Try:
    select A.bId+A.carrierPos,B.carrierId
    from
    (select distinct bId,carrierPos from 表) A 
    left join (select bId,carrierPos,carrierId from 表 where carrierId<>'' ) B on A.bId+A.carrierPos=B.bId+B.carrierPos
      

  3.   

    不过要是这样的话  XN008C 0 S805760711
    XN008C 0 S805760794留那一个呢!?
      

  4.   

    同一个 bId不会在一天同时出现不同的 carrierId
    呵呵
      

  5.   

    你的思路我理解了,先看看在说,网上也搜索不到关于数据库中重复值得操作,都是哪个copy来copy去的,先谢谢了在说