考试网 >> IT认证 >> Oracle >> Oracle指导 >> Oracle入门教程,新手必读

Oracle入门教程,新手必读

发布时间:2006-06-28 10:02     点击:
分页:上一页  1 2 [3] 4 5 6 7 8 9 10  下一页

   AS SELECT * (可以是表a中的几列) 

   FROM a 

   WHERE a.column = ...; 

7.查找、删除重复记录: 

   法一: 用Group by语句 此查找很快的 

   select count(num), max(name) from student --查找表中num列重复的,列出重复的记录数,并列出他的name属性 

   group by num 

   having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次 

   delete from student(上面Select的) 

   这样的话就把所有重复的都删除了。-----慎重 

   法二:当表比较大(例如10万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法: 

   ---- 执行下面SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录 

   SELECT * FROM EM5_PIPE_PREFAB 

   WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D --D相当于First,Second 

   WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND 

   EM5_PIPE_PREFAB.DSNO=D.DSNO); 

   ---- 执行下面SQL语句后就可以刪除所有DRAWING和DSNO相同且重复的记录 

   DELETE FROM EM5_PIPE_PREFAB 

   WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D 

   WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND 

   EM5_PIPE_PREFAB.DSNO=D.DSNO); 

8.返回表中[N,M]条记录: 

   取得某列中第N大的行 

   select column_name from 

   (select table_name.*,dense_rank() over (order by column desc) rank from table_name) 
分页:上一页  1 2 [3] 4 5 6 7 8 9 10  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有