删除重复记录,并且剩下一条


我们可以通过下述方法删除重复记录:
例:表名: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



相关阅读:
关于初次学习Ajax的一些心得
详解SQL Server Profiler分析死锁几大步骤
继续坚守XP系统的专家建议
使用 Apache Wink 和 Ajax 构建富 Java Web 应用程序
谈谈PHP语法(5)
网页用户注册界面的设计
javascript实现的左右选择框效果代码
发生意外错误 0x8ffe2740 IIS启动失败
当td为空时怎样显示其边框
“渐变窗口”有绝招
收集21个DOS常用命令
Linux系统下以模块方式安装卸载文件系统
jquery checkbox全选、取消全选实现代码
解析面向小企业的新品:Windows Server 2008 Foundation
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4