如何删除表中的重复记录?
--测试数据
/*-----------------------------
select * from tt
-----------------------------*/
id pid
----------- -----------
1 1
1 1
2 2
3 3
3 3
3 3
(所影响的行数为 6 行)
首先,如何查询table中有重复记录
select *,count(1) as rownum
from tt
group by id, pid
having count(1) > 1
id pid rownum
----------- ----------- -----------
1 1 2
3 3 3
(所影响的行数为 2 行)
方法一:使用distinct和临时表
if object_id('tempdb..#tmp') is not null
drop table #tmp
select distinct * into #tmp from tt
truncate table tt
insert into tt select * from #tmp
方法二:添加标识列
alter table tt add NewID int identity(1,1)
go
delete from tt where exists(select 1 from tt a where a.newid>tt.newid and tt.id=a.id and tt.pid=a.pid)
go
alter table tt drop column NewID
go
/*注,oracle中由于有伪列rowid则更简单,可以直接用rowid*/
/*
delete from tt where exists(select 1 from tt a where a.rowid>tt.rowid and tt.col1=a.col1 and tt.col2=a.col2)
*/
--测试结果
/*-----------------------------
select * from tt
-----------------------------*/
id pid
----------- -----------
1 1
2 2
3 3
(所影响的行数为 3 行)
如何删除表中的重复记录?相关推荐
- 如何删除表中的重复记录?等等常用SQL语句的积累
1.如何删除表中的重复记录?(这里指记录的每个字段都要相同) select distinct * into #temp from tab delete tab insert tab select * ...
- Oracle 查找并删除表中的重复记录
案例:一个应用表中的一个字段是主键,向表中插入数据时,先把数据放在临时表中(没有主键)然后再插入应用表. 这时候如果临时表中有重复数据,无论是主键字段businessid有重复,还是一整行有重复都会报 ...
- SQL删除表中的重复记录只保留其中一条,最简单的方法:ROW_NUMBER()
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?. 要求:删除表中多余的重复记录,且保留 id 最小的那一条记录. CREATE TABLE #temp_data( id BI ...
- oracle中的rowid--伪列-删除表中的重复内容-实用
1.rowid是一个伪列,是用来确保表中行的唯一性,它并不能指示出行的物理位置,但可以用来定位行. 2.rowid是存储在索引中的一组既定的值(当行确定后).我们可以像表中普通的列一样将它选出来. 3 ...
- 用一条sql语句删除表中所相同记录
用一条sql语句删除表中所相同记录如下一.具有主键的情况 a.具有唯一性的字段id(为唯一主键) delete table where id not in ( select max(id) from ...
- mysql 找表重复数据,mysql 数据表中查找重复记录
mysql 数据表中查找重复记录 复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name ha ...
- Oracle 查看表中重复的记录,以及去除表中的重复记录
--查看表中重复的记录 select tscw.L_SEC_KEY as L_BOND_KEY ,---债券内码 to_date(twcb.b_info_carrydate,'yyyyMM ...
- MySQL 删除表中的数据记录
文章目录 前言 一.删除表中的数据记录? 1.删除特定数据记录 2.删除所有数据记录 总结 前言 删除数据记录是数据操作中常见的操作,可以删除表中已经存在的数据记录.在MySQL中可以通过DELETE ...
- Oracle删除表中的重复数据
Oracle数据库删除表中的重复数据,只保留其中的一条,以两个字段为例,提供两种方法 ①.直接delete重复的数据 delete from table_name t1 where (t1.col1, ...
最新文章
- 2021-08-31 openCV批量读取把 path0 里面的与 path 同名文件(.jpg)提取出来,然后生成.png放进 path1 路径里面
- 旋转角度_办公娱乐新神器!这款稳固的创意支架,360°旋转随便换角度
- autosys start_mins
- mysql5.623 GTID主从复制+半同步复制安装与配置
- 前端学习(2903):用vite开发环境
- http statusCode 500状态码
- 第四篇 做一个用户登录之后查看学员信息的小例子
- numpy中的方差、协方差、相关系数
- 这四行棘手的C代码背后的概念
- 抖音直播预告开通条件是什么?
- HuaWei ❀ Radius协议概述
- python - 乌龟吃鱼游戏
- os 存储器的结构层次
- python3.7的idle打不开解决办法_python3.4idle为什么打不开
- python 003 __小斌文档 | python 变量
- git 裁切_图片裁切.html
- java 持久监听blockqueue的变化_Curator目录监听
- 一位36岁程序员的困惑
- ecc 算法 PHP实现,ECC算法的详细说明
- 脑壳疼!到底该不该裸辞?
热门文章
- 欧几里得算法与不定方程
- 20221219今天的世界发生了什么
- 小肩膀网页全能班全套视频解析
- stm32读写 DS2431
- 【linux】2022年还能用,网易真的是良心啊,网易云音乐linux版本现在还是可以使用的超赞!!官方网的下载地址还可以使用,音乐使用的是qt5进行开发的。
- 【翻译】10倍性能提升:优化静态站点——by JonLuca De Caro
- 启动Charls报错“The bundled Java installation is broken. Please uninstall and reinstall Charles.”
- 【论文合集】2022年11月医学影像期刊论文合集
- 计算机必须配置的设备是,CSGO Mengxin必须查看计算机配置和设备选择建议以及经验分享...
- Spark 内存管理详解(下):内存管理