两个菜鸟问题,请大家帮帮忙 1.Oracle DBA手册不错2.create table temp (select distinct * from table 你的表);drop table 你的表;然后再把那个临时表倒过来就可以了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 f1 f2 f3李志明 男 通讯李志明 男 通讯delete from t1 where rowid != (select max(rowid) from t1 t2 where t1.f1 = t2.f1 and t1.f2 = t2.f2 and t1.f3 = t2.f3) DELETE FROM our_table WHERE rowid not in (SELECT MIN(rowid) FROM our_table GROUP BY column1, column2, column3... 除了用DELETE有没有别的办法,如果有N多的记录,我总不能一条一条去查ROWID巴,还请大家多替我想想办法,谢谢了 我总不能一条一条去查ROWID巴???要你去查??不用吧,你试试运行上面两个猩猩大哥的SQL 2.create table temp (select distinct * from table 你的表);这种方法好象不行! 毕业生的办法我试了一下,能用,就是要倒一下表lianhg的办法,我有一点看不懂,t1,t2似乎是表名,他的想法似乎是从两个表中查出一组值相等的记录,然后根据ROWID删除,第二张表应该是复制表1的对巴,但是只能针对一组重复纪录,而且程序员还必须区分哪些纪录内容是重复的,似乎效率不高BZSZP的办法,也必须查出重复记录内容,似乎效率不高这是小弟一点粗浅的看法,如有错误还请大家指正,谢谢 SQL> create table t1 (f1 varchar2(10),f2 varchar2(10),f3 varchar2(10));SQL> insert into t1 values('1','2','3');SQL>/SQL>/SQL>/SQL>insert into t1 values('2','2','3');SQL>/SQL>/SQL>delete from t1 where rowid != (select max(rowid) from t1 t2 where t1.f1 = t2.f1 and t1.f2 = t2.f2 and t1.f3 = t2.f3);SQL> select * from t1;F1 F2 F3-------------------- -------------------- --------------------1 2 32 2 3 毕业生的方法可以直接把旧表删除,用rename把新表改名就行了。其他的方法用rowid来检索效率也应该不会太低!!! create table temp as(select distinct * from table 你的表); 还有BZSZP的方法里面column是指什么?大侠们能帮忙把算法的中心思想说一下吗?省得我看不懂又乱说 oracle 是标准SQL,多看看有关SQL方面的书籍。 由哪些比较经典的oracle书,最好是电子版的,推荐几本给小弟我吧,谢谢了 create table temp as(select distinct * from table 你的表);哦。原来是create table temp as(select distinct * from tablename); 前辈们有什么好的ORACLE电子书推荐一本吧,谢谢 http://61.144.28.248/d6i/bbs_armok01/bbs_content.jsp?bbsSerialNo=7722&bbsPageNo=1這兒有N多好書,慢慢下栽吧!!!! distinct 取消重复行 是什么意思 表数据量非常大的问题 急!!ORACLE 插入时出现error, 请问怎么解决呀! 为什么结束了用户的所有会话还不能删除用户呢??急急急 超奇怪的问题,视图中的查询可以用,但是建立视图就报表或视图不存在 select * from table where statement 的存储过程 100分求助EXP问题 大家帮忙看看这句话有问题吗? oracle817时间问题 oracle 函数 怎么样在nt里面做双机预备,2台服务器都是ibm 询问一下Oracle安装的问题
李志明 男 通讯
李志明 男 通讯delete from t1 where rowid != (select max(rowid) from t1 t2
where t1.f1 = t2.f1 and t1.f2 = t2.f2 and t1.f3 = t2.f3)
WHERE rowid not in
(SELECT MIN(rowid)
FROM our_table
GROUP BY column1, column2, column3...
(select distinct * from table 你的表);这种方法好象不行!
lianhg的办法,我有一点看不懂,t1,t2似乎是表名,他的想法似乎是从两个表中查出一组值相等的记录,然后根据ROWID删除,第二张表应该是复制表1的对巴,但是只能针对一组重复纪录,而且程序员还必须区分哪些纪录内容是重复的,似乎效率不高
BZSZP的办法,也必须查出重复记录内容,似乎效率不高
这是小弟一点粗浅的看法,如有错误还请大家指正,谢谢
SQL> insert into t1 values('1','2','3');
SQL>/
SQL>/
SQL>/
SQL>insert into t1 values('2','2','3');
SQL>/
SQL>/
SQL>delete from t1 where rowid != (select max(rowid) from t1 t2
where t1.f1 = t2.f1 and t1.f2 = t2.f2 and t1.f3 = t2.f3);
SQL> select * from t1;F1 F2 F3
-------------------- -------------------- --------------------
1 2 3
2 2 3
(select distinct * from table 你的表);
(select distinct * from table 你的表);
哦。原来是create table temp as
(select distinct * from tablename);
這兒有N多好書,慢慢下栽吧!!!!