表里面有很多条记录,有FID,FLAG两个字段,里面有不少记录的FID都相同,我想删除那些(FID字段内容多余重复的且flag字段等于1 )的所有数据;求该操作的sql语句,最好是一条语句来实现!!
解决方案 »
- 可以给个Oracle的学习路线么?
- win7 64位下oracle 11g r2 的安装与简单使用(新建数据库啊,表什么的)
- 遇到了几个错误。。大家帮忙看看
- 请帮忙解释一段oracle代码,
- oracel 锁定小问题...加急
- 一个Sql server的库(有视图,有触发器,有存储过程,有关系)迁移成oracle的库...
- 在局域网中实现客户机连接到服务器???
- 放假了,各位兄弟帮帮忙吧。改了ip,不能建立新的数据库了。
- 在www.oracle.com上下载的oracle jbuild9怎么不能安装?
- oracle表内部连接是什么原理?不是左关联右关联这些。
- 请问以SYSOPER身份登录不能进行表和视图的查询吗?
- 请大家帮忙翻译一条sql server的语句
where FLAG = 1 and exists ( select FID from tablename where FID = a.FID group by FID having count(FID) > 1)delete前做backup一下table
where FLAG = 1 and exists ( select FID from tablename where FID = t.FID group by FID having count(FID) > 1)
where t.FLAG=1 and t.FID in(select FID from tname group by FID having count(FID)>1)
的方法对
同时做好备份
where FLAG = 1 and exists ( select FID from tablename where FID = a.FID group by FID having count(FID) > 1) and rowid > (select min(rowid) from tablename where FID = a.FID group by FID having count(FID) > 1)其实这种SQL的效率不好,有条件的话还是分四步进行:
1,挑出符合条件的记录放入临时表tmpTable;
2,删除tablename中符合条件的所有记录;
3,删除tmpTable中相同的记录(仅留下一笔);
4,将tmpTable中的记录导回tablename;