|
|
| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | | ||||
|
|
||||||||
|
||||||||
|
|||||
| 在SQL中删除重复记录(多种方法) | |||||
作者:佚名 文章来源:CnXHacker.Net 点击数: 更新时间:2006-10-27 ![]() |
|||||
|
SQL> desc employee
Name Null? Type
emp_id NUMBER(10)
salary NUMBER(10,2)
SQL> select * from employee;
---------- ---------------------------------------- ----------
1 sunshine 10000
1 sunshine 10000
2 semon 20000
2 semon 20000
3 xyz 30000
2 semon 20000
SQL> select distinct * from employee;
EMP_ID EMP_NAME SALARY
---------- ---------------------------------------- ----------
1 sunshine 10000
2 semon 20000
3 xyz 30000
SQL> select * from employee group by emp_id,emp_name,salary having count (*)>1
EMP_ID EMP_NAME SALARY
---------- ---------------------------------------- ----------
1 sunshine 10000
2 semon 20000
where rowid in (select max(rowid) from employe e2
e1.emp_name=e2.emp_name and e1.salary=e2.salary);
---------- ---------------------------------------- ----------
1 sunshine 10000
3 xyz 30000
2 semon 20000
SQL>create table temp_emp as (select distinct * from employee)
SQL> truncate table employee; (清空employee表的数据)
SQL> insert into employee select * from temp_emp; (再将临时表里的内容插回来)
SQL>delete from employee e2 where rowid not in (
e1.emp_id=e2.emp_id and e1.emp_name=e2.emp_name and e1.salary=e2.salary);--这里用min(rowid)也可以。
e1.salary=e2.salary);
SQL>delete from employee where rowid not in ( |
|||||
| 文章录入:IceRiver 责任编辑:IceRiver | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 活地运用SQL Injection做数据 数据库安全应用 使用MySQL的 MSSQL数据库SA权限入侵的感悟 XSS跨站脚本及SQL注入漏洞技 开源MySQL停止提供企业版源代 打造SQL Server2000的安全策 堵死网站被SQL注入的隐患 拨开迷雾 教你认清在 SSL保 利用QQLive 新型QQ尾巴病毒疯 fsqh.exe - fsqh - 进程信息 |
网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!) |
| 关于我们 - 版权声明 - 帮助(?) - 广告服务 - 联系我们 - 友情链接 - 用户注册 - | Powered by ICE RIVER - STUDIO |
| » CnXHacker.CoM | © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved. |