彩世界平台-彩世界时时app-彩世界开奖app苹果下载

热门关键词: 彩世界平台,彩世界时时app,彩世界开奖app苹果下载

您的位置:彩世界平台 > 工作委员会 > SQL Server中删除重复数据的几个方法_MsSql_脚本之家

SQL Server中删除重复数据的几个方法_MsSql_脚本之家

发布时间:2019-11-23 04:48编辑:工作委员会浏览(188)

    1.如果有ID字段,就是具有唯一性的字段 复制代码 代码如下: delect table where id not in from table group by col1,col2,col3... ) group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。

    方法一 复制代码 代码如下: declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count from 表名 group by 主字段 having count > 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into @id,@max end close cur_rows set rowcount 0 方法二 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。 1、对于第一种重复,比较容易解决,使用 select distinct * from tableName 就可以得到无重复记录的结果集。 如果该表需要删除重复的记录,可以按以下方法删除 复制代码 代码如下: select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp 发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。 2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集 select identity as autoID, * into #Tmp from tableName select min as autoID into #Tmp2 from #Tmp group by Name,autoID select * from #Tmp where autoID in(select autoID from #tmp2) 最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)

    本文由彩世界平台发布于工作委员会,转载请注明出处:SQL Server中删除重复数据的几个方法_MsSql_脚本之家

    关键词:

上一篇:SQL查询入门_MsSql_脚本之家

下一篇:没有了