请问下面的表如何得到
列名 bId carrierPos carrierId
XN008C 0
XN008C 0 S805760794
XN008C 1
XN008C 1 TP10082591
XN008C 2 X170123105
XN008C 2
XN008C 3
XN008C 3 X171565696
XN008C 4
我现在想清除重复的行,相同的行,只留下有carrierId的,请问如何处理?比如上面的处理后,得到
bId carrierPos carrierId
XN008C 0 S805760794
XN008C 1 TP10082591
XN008C 2 X170123105
XN008C 3 X171565696
XN008C 4
问题点数:20、回复次数:8Top
1 楼lsqkeke(可可)回复于 2006-03-01 10:45:39 得分 0
select bId,carrierPos,carrierId=max(carrierId)
from tb
group by bId,carrierPos
Top
2 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-01 11:08:51 得分 0
可可兄,我的意思是如何得到
bId carrierPos carrierId
XN008C 0 S805760794
XN008C 1 TP10082591
XN008C 2 X170123105
XN008C 3 X171565696
XN008C 4
这样的结果,因为我是在做一个交叉表的处理,上面只是我众多数据中找出来的一个,如果按照你目前给的方法,我全不手工去做,显然也不太现实阿,
我想的是只处理相同行中的数据,并且删除carrierId 是空的行,谢谢Top
3 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-01 13:32:31 得分 0
自己up,对于重复行的处理自己在这里还不是很清楚,希望大家能帮助下,分不够,可以在加Top
4 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-01 16:14:24 得分 0
自己up自己,真不爽Top
5 楼scmail81(琳·风の狼(修罗))回复于 2006-03-01 16:42:34 得分 0
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.carrierPosTop
6 楼scmail81(琳·风の狼(修罗))回复于 2006-03-01 16:43:46 得分 20
不过要是这样的话
XN008C 0 S805760711
XN008C 0 S805760794
留那一个呢!?Top
7 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-02 14:36:36 得分 0
同一个 bId不会在一天同时出现不同的 carrierId
呵呵Top
8 楼Rubi(浪迹Csdn各个板块!MS-Borland-IBM-SUN-水区-在去哪里呢?)回复于 2006-03-02 15:07:26 得分 0
你的思路我理解了,先看看在说,网上也搜索不到关于数据库中重复值得操作,都是哪个copy来copy去的,先谢谢了在说Top




