SQL删除数据表中指定列重复的数据
在对数据库操作的过程中难免会因为操作失误使数据库中的数据表中出现重复数据,下面我们要将这些数据重复数大于一的其他数据删除,只保留一条。
关于这个问题的处理方式网上一搜一大堆,但是以下两种方法貌似还没有,在此将代码贴出来期待大家指出其中的不足,我将非常感谢。
有如下几种方法可以解决
方法1 游标
DECLARE @DupCount INT,@Number NCHAR(10),@Name VARCHAR(20),@Address NVARCHAR(50)
DECLARE Cur CURSOR
READ_ONLY
FOR
SELECT COUNT(*) AS Total,Number,Name,[Address]
FROM [MyDataBase].[dbo].[MyTest]
GROUP BY Number,Name,[Address] HAVING(COUNT(*)>1)
OPEN Cur
FETCH NEXT FROM Cur INTO @DupCount,@Number,@Name,@Address
WHILE(@@FETCH_STATUS=0)
BEGIN
DELETE TOP(@DupCount-1) FROM
[MyDataBase].[dbo].[MyTest]
WHERE Number=@Number AND Name =@Name AND [Address]=@Address
FETCH NEXT FROM cur INTO @DupCount,@Number,@Name,@Address
END
CLOSE Cur
DEALLOCATE Cur
方法2 临时表,这种方法太暴力一般不推荐
SELECT * INTO #TEMPTABLE
FROM
(
SELECT * FROM [MyDataBase].[dbo].[MyTest]
UNION
SELECT * FROM [MyDataBase].[dbo].[MyTest]
) AS R
DROP TABLE [MyDataBase].[dbo].[MyTest]
SELECT * INTO [MyDataBase].[dbo].[MyTest]
FROM #TEMPTABLE
DROP TABLE #TEMPTABLE
.Net、SqlServer开发新手,学习ing
转载于:https://www.cnblogs.com/Phill/p/3254163.html
SQL删除数据表中指定列重复的数据相关推荐
- mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据
本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...
- mysql select 指定列_MySQL使用select语句查询指定表中指定列(字段)的数据
本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...
- mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)
转自:http://www.maomao365.com/?p=5323 摘要: 下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除"表A"中,ID ...
- 如何查询数据表中指定字段的内容?
@R星校长 查询数据表中指定字段的内容 MySQL从数据表中查询数据的基本语句为SELECT语句. SELECT语句的可选参数比较多,让我们先从最简单的开始,带大家一步一步的深入SELECT语句的使用 ...
- 【MySQL】根据数据表中日期字段查询某个月每一天的数据量?查询数据表中所有日期每天的数据量?近三天每天数据量?
前提这个table有一个日期字段date_time之类的 1.根据数据表中日期字段查询某个月每一天的数据量 如果要获取8月的数据,可以这么写: SELECT count(*), DATE_FORMAT ...
- 使用python在已存在的excel数据表中的特定位置写入数据
使用python在已存在的excel数据表中的特定位置写入数据 excel表中的行和列都是从1开始的 代码: # 使用python在已存在的excel数据表中的特定位置写入数据 # excel表中的行 ...
- SQL命令向表中添加列
SQL语言用ALTER TABLE语句修改基本表,其一般格式为: ALTER TABLE <表名> [ADD [COLUMN] <新列名><数据类型>[完整性约束] ...
- sql server 数据库表中增加列,增加字段,插入列,插入字段,修改列,修改字段,
格式 --增加列 alter table 表名 add 字段名 类型 null default 默认值--给列增加注释 execute sp_addextendedproperty 'MS_Descr ...
- mysql删除表中的唯一索引吗_Mysql 使用sql删除同表中重复数据并加唯一索引
同一张表中,假设以两个字段做唯一业务,这两个字段分别为key1,key2, 则以这两个字段为唯一 DELETE tablename FROM tablename , ( SELECT min(id) ...
最新文章
- 写一个函数days,实现计算本年第几天
- 【组合数学】生成函数 ( 正整数拆分 | 重复有序拆分 | 不重复有序拆分 | 重复有序拆分方案数证明 )
- mac的ideal终端中mvn命令不生效 commang not found
- CNCF TOC 委员张磊:不断演进的云原生给我们带来了什么?
- 系统页面升级系统中_国产系统哪家强?华为EMUI系统大升级,拿下最强指日可待...
- [BZOJ1297/Luogu4159][SCOI2009]迷路
- 千万条数据,Stack Overflow是如何实现快速分页的
- 摆脱困境:在每种测试方法之前重置自动增量列
- React开发(266):ant design customRequest
- 这些快捷键要学会使用啊
- 【转载】FAT32文件系统详解
- Shell练习(十一)
- ggplot 非常难调的参数
- python 基础 集合
- Oracle官网登录下载资源账号密码共享
- Windows编译Nginx源码
- 内存带宽测试工具 mbw
- 在QT界面中使用ico/png等图片文件,生成exe后不依赖外部文件
- 新概念英语(第四册,旧版)复习(原文及全文翻译)——Lesson 58 - Hobbies(培养一种爱好)
- DHTML动态样式的作用
热门文章
- mix-blend-mode 属性
- 什么是Reconciliation?
- 错误票据java_【蓝桥杯】错误票据 - osc_bskh1wlw的个人空间 - OSCHINA - 中文开源技术交流社区...
- 前端遮罩层实现_cocos creator--游戏开奖功能组件《刮刮卡》特效实现
- oracle9i查等待事件,什么是Oracle9i中的一个特殊等待事件?
- 中间件静态文件服务器,从koa-static中间件学习搭建静态文件服务器
- 数据持久化mysql_Nacos数据持久化到MySQL
- ble l2cap 工作过程_BLE 链路层报文详解
- JS面向对象之封装自定义构造函数
- java angularjs 跨域访问_AngularJS实现跨域请求