加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 07:51:04 所属栏目:MsSql教程 来源:网络整理
导读:感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 我们可以通过下述方法删除重复记录: 例:表名:dbo.品种描述$,字段包括:ID_PK,品种名称,性状标准编号,代码,首先创建一个和原表结构一样的表: 代码如下: select * into tmpA from d

感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读