先查询下:
SELECT *
FROM TB T
WHERE ROWID<>(SELECT MAX(B.ROWID) FROM TB B WHERE T.A = B.A AND T.S = B.S AND T.D = B.D AND T.F = B.F)
然后删除:
DELETE FROM TB T WHERE ROWID<>(SELECT MAX(B.ROWID) FROM TB B WHERE T.A = B.A AND T.S = B.S AND T.D = B.D AND T.F = B.F)
SELECT *
FROM TB T
WHERE ROWID<>(SELECT MAX(B.ROWID) FROM TB B WHERE T.A = B.A AND T.S = B.S AND T.D = B.D AND T.F = B.F)
然后删除:
DELETE FROM TB T WHERE ROWID<>(SELECT MAX(B.ROWID) FROM TB B WHERE T.A = B.A AND T.S = B.S AND T.D = B.D AND T.F = B.F)
解决方案 »
- 请问,PLSQL连接时用管理员登陆显示TNS无法解析,是什么原因
- oracle9客户端能不能导出oracle11数据?
- 请教一个SQL语句
- 简单的查询问题!!!!!!!
- 【请教高高手】如何在PL/SQL环境里直接使用已经创建的PRC、PKG、FUN等,请老师们指教???
- Perl与Oracle数据库连接的问题
- 急~~~~~~~~~~~~~~~~~~~~在线等ing......
- 关于分区表的索引?
- 请问在oracle中对sql语句的审计结果保存在那个表中?我在aud$中没有找到
- 在oracle中建表的问题
- 从oracle下载的oracle10为什么比9文件大小小得多,安装后所需空间相差也是这么大吗?另外10比9多消耗内存能资源吗?
- 请教:我在安装oracle时,一直弹出“加载数据库时出错”的问题,无法安装,请帮忙,谢了
(select max(rowid) from table t2
where t1.a=t2.a and t1.s=t2.s and t1.f=t2.f and t1.d=t2.d)
(select max(rowid) from table t2
where t1.a=t2.a and t1.s=t2.s and t1.f=t2.f and t1.d=t2.d)
好!!!厉害
然后将不是这个rowid的记录删除??
(
select * from test group by test.a,test.s,test.d,test.f having count(*)>1
) t where t.rownumber>1;