sql server删除重复记录且只余一条的例子

发布时间:2019-10-19编辑:脚本学堂
数据库中的重复记录,可能是一列,也可能是多列,在去除重复时,要根据实际情况进行不同的处理。

我们来看下面的例子。
表名: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

您可能感兴趣的文章:
sql server 查询重复记录的多种方法
sql server删除表中重复数据行的方法
sql server 重复记录的取最新一笔的实现方法
SQL Server删除重复数据的几种方法
去除重复数据的SQL语句
如何在SQL Server2008中删除重复记录