删除重复记录,并且剩下一条
我们可以通过下述方法删除重复记录:
例:表名:dbo.品种描述$,字段包括:ID_PK,品种名称,性状标准编号,代码,首先创建一个和原表结构一样的表:
代码如下:
select * into tmpA from dbo.品种描述$ where 1=2--创建完毕
在数据表中,品种名称,性状标准编号这两个字段不能有重复值,执行下述脚本:
declare @VarietyName nvarchar(255),
@StdCharCode nvarchar(255),
@iCount int
set @iCount=0;
declare insert_distinct_cursor cursor for
select 品种名称,性状标准编号 from dbo.品种描述$ group by 品种名称,性状标准编号
open insert_distinct_cursor
FETCH NEXT FROM insert_distinct_cursor INTO @VarietyName,@StdCharCode
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
insert into dbo.tmpA (品种名称,性状标准编号,代码) select top 1 品种名称,性状标准编号,代码 from dbo.品种描述$ where 品种名称=@VarietyName and 性状标准编号=@StdCharCode;
set @iCount=@iCount+1;
END
FETCH NEXT FROM insert_distinct_cursor INTO @VarietyName,@StdCharCode
END
CLOSE insert_distinct_cursor
DEALLOCATE insert_distinct_cursor
print @iCount
相关推荐
-
删除重复记录,并且剩下一条
我们可以通过下述方法删除重复记录: 例:表名:dbo.品种描述$,字段包括:ID_PK,品种名称,性状标准编号,代码,首先创建一个和原表结构一样的表: 复制代码 代码如下: select * into tmpA from dbo.品种描述$ where 1=2--创建完毕 在数据表中,品种名称,性状标准编号这两个字段不能有重复值,执行下述脚本: declare @VarietyName nvarchar(255), @StdCharCode nvarchar(255), @iCount int
-
解决Oracle删除重复数据只留一条的方法详解
查询及删除重复记录的SQL语句1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id)
-
ORACLE查询删除重复记录三种方法
比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码 代码如下: select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address 可以实现上述效果. 几个删除重复记录的SQL语句 1.用rowid方法 2.用g
-
oracle查询重复数据和删除重复记录示例分享
一.查询某个字段重复 select * from User u where u.user_name in (select u.user_name from User u group by u.user_name having count(*) > 1) 二,删除表中某几个字段的重复 例:表中有条六条记录. 其中张三和王五 的记录有重复 TableA id customer PhoneNo 001 张三 777777 002 李四 444444 003 王五 555555 004 张三 7
-
sqlserver 删除重复记录处理(转)
注:此处"重复"非完全重复,意为某字段数据重复 HZT表结构 ID int Title nvarchar(50) AddDate datetime 数据 一. 查找重复记录 1. 查找全部重复记录 Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) 2. 过滤重复记录(只显示一条) Select * From HZT Where ID In (Select Max(I
-
mysql删除重复记录语句的方法
例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 delete YourTable where [id] not in ( select max([id]) from YourTable group by (name + value)) 方法2 delet
-
SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法
SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 例二: select * from testtable where numeber in (select number from people group by numbe
-
SQL对冗余数据的删除重复记录只保留单条的说明
我们先看一下相关数据结构的知识. 在学习线性表的时候,曾有这样一个例题. 已知一个存储整数的顺序表La,试构造顺序表Lb,要求顺序表Lb中只包含顺序表La中所有值不相同的数据元素. 算法思路: 先把顺序表La的第一个元素付给顺序表Lb,然后从顺序表La的第2个元素起,每一个元素与顺序表Lb中的每一个元素进行比较,如果不相同,则把该元素附加到顺序表Lb的末尾. 复制代码 代码如下: public SeqList<int> Purge(SeqList<int> La) { SeqLis
-
有用的SQL语句(删除重复记录,收缩日志)
删除重复记录,将TABLE_NAME中的不重复记录保存到#TABLE_NAME中 select distinct * into #table_name from table_name delete from table_name select * into table_name from #table_name drop table #table_name 与此相关的是"select into"选项,可以在数据库属性 对话框中,勾起来此项,或者在Query Analyzer中执行 ex
-
MySQL中查询、删除重复记录的方法大全
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as count from user_table group by title having count>1; SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Titl
随机推荐
- Web前端框架Angular4.0.0 正式版发布
- asp.net Bundle功能扩展
- PHP简单实现二维数组赋值与遍历功能示例
- flex导出excel具体实现
- jQuery实现锚点向下平滑滚动特效示例
- ExtJS4中使用mixins实现多继承示例
- iOS实现顶部标签式导航栏及下拉分类菜单
- Java struts2 validate用户登录校验功能实现
- Android控件Gallery3D效果实例代码
- ASP 循环导入导出数据处理 不使用缓存
- JS实现下拉菜单列表与登录注册弹窗效果
- 聊一聊Ajax的优缺点
- Android添加水印的正确方法 只要三步!
- mysql 5.7.11 winx64.zip安装配置方法图文教程
- Android开发之设置开机自动启动的几种方法
- js重写alert控件(适合学习js的新手朋友)
- linux配置java环境变量详细过程
- Android开发实现简单的观察者与被观察者示例
- Android中获取网页表单中的数据实现思路及代码
- tp5(thinkPHP5)操作mongoDB数据库的方法