A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈家辉 中级黑马   /  2013-8-14 19:13  /  1172 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈家辉 于 2013-8-17 23:57 编辑

id      姓名      年龄
1      张三        30
2      李四        40
3      张三        30
4      张三        30


要求一条SQL语句删除重复的数据
谢谢各位大虾吖

3 个回复

倒序浏览
delete * from 表名
where Id in (select Id from
group by Id having count(Id) > 1)
试试看
回复 使用道具 举报
针对sql server 数据库的sql语句:
  1. delete from 表名 where id in (select id from 表名 where 姓名 in(select 姓名 from 表名 group by 姓名 having count(姓名)>1)
  2. and id not in ( select min(id) from 表名 where 姓名 in(select 姓名 from   表名   group by 姓名
  3. having count(姓名)>1)))
复制代码
如果要是oracle数据库库重复数据删除的话,你可以把后面的
select min(id) from 表名 where 姓名 in(select 姓名 from  表名 group by 姓名
having count(姓名)>1)中的的min(id)换成min(rowid)或者max(rowid)

评分

参与人数 1技术分 +1 收起 理由
赵宗荣 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马