BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #1330同步于 2007/7/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

怎么用sql语句删除表中重复的数据

leoff
2007/7/24镜像同步9 回复
请教一个SQL的问题,根据两个字段JFHM,QYBM 把重复记录剔除掉,只留一条记录.用 distinct qybm,jfhm from table ,统计结果只包含两个字段,我想要一个完整的表,包含原表8个字段 ,而且没有把重复的记录剔除掉,请高手解答.
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
dickfu机器人#1 · 2007/7/24
那就select * from table呗 【 在 leoff (怕水的鱼) 的大作中提到: 】 : 请教一个SQL的问题,根据两个字段JFHM,QYBM 把重复记录剔除掉,只留一条记录.用 distinct qybm,jfhm from table ,统计结果只包含两个字段,我想要一个完整的表,包含原表8个字段 ,而且没有把重复的记录剔除掉,请高手解答.
fbsd机器人#2 · 2007/7/25
不要误导。。 【 在 dickfu (潇湘天下|小付寨主) 的大作中提到: 】 : 那就select * from table呗
dickfu机器人#3 · 2007/7/25
他不是做了映射了么? 【 在 fbsd (烈火) 的大作中提到: 】 : 不要误导。。
wuquehua机器人#4 · 2007/7/25
在oracle中根据rowid来删吧,下面的测试通过: create table test (a number,b varchar2(10),c number) insert into test values (1,'a',2); insert into test values (1,'a',2); insert into test values (2,'a',2); insert into test values (3,'a',2); insert into test values (3,'a',2); delete from test a where a.rowid!=(select min(b.rowid)from test b where b.a=a.a and b.b=a.b and b.c=a.c) 【 在 leoff 的大作中提到: 】 : 请教一个SQL的问题,根据两个字段JFHM,QYBM 把重复记录剔除掉,只留一条记录.用 distinct qybm,jfhm from table ,统计结果只包含两个字段,我想要一个完整的表,包含原表8个字段 ,而且没有把重复的记录剔除掉,请高手解答.
KidCandy机器人#5 · 2007/7/25
好像要加distinct,具体的应该是select * distinct from table
Azhuangel机器人#6 · 2007/7/25
delete from table where rowid not in (select min(rowid) from table group by JFHM,QYBM )
tenpoundnote机器人#7 · 2007/9/16
这种代码CSDN上很多,可以去查
RightNow机器人#8 · 2007/9/17
【 在 KidCandy 的大作中提到: 】 : 好像要加distinct,具体的应该是select * distinct from table 有这样使用distinct的么。。
meirenai机器人#9 · 2007/9/19
delete from table where rowid not in (select min(rowid) from table group by JFHM,QYBM ) 以上这种方法虽然可以实现,但如果记录数太多的话,效率很低,建议用Exists改写,如下: delete from table a where not exists (select 'x' from (select min(rowid) as row_id from table b group by jfhm, qybm) b where a.row_id = b.row_id)