Oracle中查询和删除相同记录的3种方法
--创建测试表
create table test(id number, name varchar2(20));
insert into test(id, name) values(1,'');
insert into test(id, name) values(1,'');
insert into test(id, name) values(2,'');
insert into test(id, name) values(2,'');
insert into test(id, name) values(3,'');
insert into test(id, name) values(3,'');
commit;
select * from test; --查询相同记录
select id,name from(select id,name,count(*) from test group by id,name having count(*)>1);
select id,name from test a where rowid > (select min(rowid) from test b where a.id = b.id and a.name = b.name);
select id,name from test a where rowid <> (select max(rowid) from test b where a.id = b.id and a.name = b.name); --查询不同记录
1.select * from test t where t.rowid <= (select min(x.rowid) from test x where t.id = x.id and t.name = x.name);
2.select distinct t.* from test t; --删除重复记录
1.delete from test t where t.rowid > (select min(x.rowid) from test x where t.id = x.id and t.name = x.name);
2.delete from test t where t.rowid <> (select min(x.rowid) from test x where t.id = x.id and t.name = x.name);
3.delete from test
where rowid in(select rd
from(select rowid rd,row_number()over(partition by id,name order by 1 )rn
from test
)
where rn <>1
);
Oracle中查询和删除相同记录的3种方法的更多相关文章
- oracle中查找和删除重复记录的几种方法总结
平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删除重复记录的方法(以表CZ为例): 表CZ的结 ...
- 【转】oracle 中随机取一条记录的两种方法
oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COU ...
- spring+hibernate删除单条记录的几种方法
spring+hibernate删除单条记录的几种方法
- MySQL中查询、删除重复记录的方法大全
查找所有重复标题的记录: select title,count(*) as count from user_table group by title having count>1; SELECT ...
- Oracle中查询前10条记录
在Oracle怎样查询表中的top10条记录呢? select * from test where rownum <=10 ----说明:rownum只能用于<或<=运算,如 ...
- oracel 查询删除重复记录的几种方法
建表语句CREATE TABLE Persons(PersonID int, LastName varchar(255),FirstName varchar(255),Addres ...
- Oracle 查询并删除重复记录的SQL语句
查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select ...
- oracle 查询及删除重复记录的SQL语句
查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group ...
- mysql 数据表中查找、删除重复记录
为了性能考虑,在阅读之前提醒大家,如果有子查询,子查询查询到的数据最好不要超过总数据量的30%. 查询有重复数据的记录 select * from F group by a,b,c,d having ...
随机推荐
- Python入门之函数的装饰器
本章目录: 装饰器: 一.为什么要用装饰器 二.什么是装饰器 三.无参装饰器 四.装饰器语法糖 五.认证装饰器实现 六.叠加多个装饰器 七.带参装饰器 ======================== ...
- Vue框架axios请求(类似于ajax请求)
Vue框架axios get请求(类似于ajax请求) 首先介绍下,这个axios请求最明显的地方,通过这个请求进行提交的时候页面不会刷新 <!DOCTYPE html> <html ...
- Hibernate(七):*.hbm.xml配置文件中Set三个属性
背景: 在上一篇文章中实现双向关联时,其中在Customer.java中我们使用了java.util.List<Order>来关联多的Order.其实还有另外一种实现方法:使用java.u ...
- ipv4与ipv6的区别
对于计算机网络有一定了解的园园们来说,对这两个概念应该比较熟悉,我也将我知道的一点点小知识分享给大家吧 1.协议使用的广泛程度不同 目前,ipv4得到了广泛的应用,基本上所以的与上网有关的(看电影,玩 ...
- transition和animation做动画(css动画二)
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! translate:平移:是transform的一个属性: transform:变形:是一个静态属性,可以 ...
- Http协议消息报头
哎.不知道怎么写Http协议... 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议. HTTP基于TCP/IP通信协议来传递数据 ...
- Set<E> 接口简明
java. util. Set 接口 Set 接口中的方法和 Collection 中方法一致的.Set 接口取出方式只有一种, 迭代器 . HashSet : 底层数据结构是哈希表,线程 是不同步的 ...
- 六,前端---viewport
移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,再具体一点,就是浏览器上用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区 ...
- ●SCOI2018 AFO
Day2 T3代码: #include<cstdio> #include<cstring> #include<iostream> using namespace s ...
- UVALive4727:jump
约瑟夫环变式 设f[i][j]表示处理i个人,按照处理顺序,倒数第j个人是谁 则有f[i][j]=(f[i-1][j]+k)%i #include<cstdio> #include< ...