您的位置:首页 > 数据库 > Oracle

oracle在没

2015-09-05 20:55 441 查看
db_user表中数据:
name age nub
张三    13  13
张三    12  12
张三    12  13
张三    12  13
李四    12  12
李四    12 12

查询重复数据(一条)
sql:select * from db_user group by name,age,nub having count(*)>1;
(需统计条数conut)

查询出的结果
name age nub
张三   12  12
李四   12 13

查询重复记录(所有)

sql:
select * from db_user  a where (a.name,a.age,a.nub)
in
(select *  from db_user group by name,age,nub having count(*)>1);

查询结果:
name age nub
张三   12  13
张三   12  13
李四   12  12
李四   12  12

删除重复记录保留一条

步骤:
1.将查询的数据插入一个新的表中;
2.删除原来的表的数据
3.将新表的数据再插入原表中
4,删除新表

sql:
1. create table new_table as(
select * from db_user group by name,age,nub having count(*)>1
);

2.  delete from db_user  a where (a.name,a.age,a.nub)  in
(select *  from db_user group by name,age,nub having count(*)>1 );

不能对同一表子查询后进行插入或者删除 要在子查询再嵌套一个查询 让对该表查询成为孙查询;

3.insert into db_user (select name,age,nub from new_table);

4.drop table new_table;

到此完成操作 最后的数据:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: