国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页数据库类SQL Server → SQL Server中删除重复数据的几个方法

SQL Server中删除重复数据的几个方法

我要评论 2010/02/07 13:45:40 来源:国语自产精品视频在线看 编辑:佚名 [ ] 评论:0 点击:182次

数据库的使用【de shǐ yòng】🐎过程中👶由于程【yóu yú chéng】🆚序方面🍮的问题【de wèn tí】有时候【yǒu shí hòu】🥥会碰到【huì pèng dào】重复数😵据,重复数😵据导致了数据库部分【kù bù fèn】设置不能正确设置……

方法一

以下为引用的👇内容【nèi róng】:

declare @max integer,@id integer
declare cur_rows cursor local for select 主字段【zhǔ zì duàn】,count(*) from 表名【biǎo míng】🌺 group by 主字段【zhǔ zì duàn】 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 表名【biǎo míng】🌺 where 主字段【zhǔ zì duàn】 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0

方法二

有两个🔰意义上的重复🙌记录【jì lù】,一是完【yī shì wán】全重复🌮的记录【de jì lù】,也即所有字段【yǒu zì duàn】🦑均重复的记【fù de jì】录【lù】,二是部🎭分关键字段重复的记【fù de jì】录【lù】,比如🎵Name字段重复,而其他🤩字段不【zì duàn bú】一定重【yī dìng chóng】🍛复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用

以下为引用的🌯内容【nèi róng】:

select distinct * from tableName

就可以得到无重复记录的结果集。

如果该表需要删除重【shān chú chóng】复的记【fù de jì】🙊录🚡(重复记【chóng fù jì】录保留😵1条),可以按以下方🦎法删除【fǎ shān chú】

以下为【yǐ xià wéi】引用的📯内容:

select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp

发生这种重复的原因☝是表设【shì biǎo shè】计不周【jì bú zhōu】🧜产生的【chǎn shēng de】,增加唯一索引💺列即可解决。

2、这类重复问题通常要求保留【qiú bǎo liú】重复记【chóng fù jì】录【lù】😧中的第一条🥒记录【lù】😧,操作方法如下【fǎ rú xià】

假设有🐝重复的【chóng fù de】🏁字段为【zì duàn wéi】Name,Address,要求得【yào qiú dé】到这两个字段唯一的结果集📝

以下为引用的【yǐn yòng de】🔶内容:

select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)

最后一个【gè】💰select即得到了【le】Name,Address不重复的结果【de jié guǒ】集【jí】😐(但多了【le】一个【gè】💰autoID字段⏸,实际写【shí jì xiě】时可以写在select子句中🛶省去此列🎫)

关键词:SQL,Server

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 欢迎喜欢
  • 0 白痴
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙视