欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

SQL刪除重復數據方法

系統 1867 0
原文: SQL刪除重復數據方法

例如:
id?????????? name???????? value
1?????????????? a???????????????? pp
2?????????????? a???????????????? pp
3?????????????? b???????????????? iii
4?????????????? b???????????????? pp
5?????????????? b???????????????? pp
6?????????????? c???????????????? pp
7?????????????? c???????????????? pp
8?????????????? c???????????????? iii
id是主鍵
要求得到這樣的結果
id?????????? name???????? value
1?????????????? a???????????????? pp
3?????????????? b???????????????? iii
4?????????????? b???????????????? pp
6?????????????? c???????????????? pp
8?????????????? c???????????????? iii

方法1
delete?? YourTable??
where?? [id]?? not?? in?? (
select?? max([id])?? from?? YourTable??
group?? by?? (name?? +?? value))

方法2
delete?? a
from?? 表?? a?? left?? join(
select?? id=min(id)?? from?? 表?? group?? by?? name,value
)b?? on?? a.id=b.id
where?? b.id?? is?? null



查詢及刪除重復記錄的SQL語句
查詢及刪除重復記錄的SQL語句
1、查找表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷
select * from people
where peopleId in (select?? peopleId from?? people group by?? peopleId having count(peopleId) > 1)
2、刪除表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷,只留有rowid最小的記錄
delete from people
where peopleId in (select?? peopleId from people group by?? peopleId?? having count(peopleId) > 1)
and rowid not in (select min(rowid) from?? people group by peopleId having count(peopleId )>1)
3、查找表中多余的重復記錄(多個字段)
select * from vitae a
where (a.peopleId,a.seq) in?? (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
delete from vitae a
where (a.peopleId,a.seq) in?? (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

5、查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
select * from vitae a
where (a.peopleId,a.seq) in?? (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
(二)
比方說
在A表中存在一個字段“name”,
而且不同記錄之間的“name”值有可能會相同,
現在就是需要查詢出在該表中的各記錄之間,“name”值存在重復的項;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果還查性別也相同大則如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1

(三)
方法一
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
  就可以得到無重復記錄的結果集。
  如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
  發生這種重復的原因是表設計不周產生的,增加唯一索引列即可解決。
  2、這類重復問題通常要求保留重復記錄中的第一條記錄,操作方法如下
  假設有重復的字段為Name,Address,要求得到這兩個字段唯一的結果集
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)
  最后一個select即得到了Name,Address不重復的結果集(但多了一個autoID字段,實際寫時可以寫在select子句中省去此列)
(四)
查詢重復
select * from tablename where id in (
select id from tablename
group by id
having count(id) > 1
)

SQL刪除重復數據方法


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月婷婷天堂 | 亚洲一区二区三区在线免费观看 | 日韩一级欧美一级毛片在线 | 精品久久香蕉国产线看观看亚洲 | 老头巨大校花体内驰骋小说文 | 伊人精品视频 | 精品精品国产高清a毛片 | 精品国产免费久久久久久 | 天天天天做夜夜夜夜 | 亚洲精品免费网站 | av黄色在线观看 | 久久久国产精品 | 成人欧美一区二区三区 | 久久精品呦女 | 日韩无毛 | 国产日韩欧美中文字幕 | 看免费一级毛片 | 精品人妻无码一区二区三区手机板 | 免费人成网ww44kk44 | 8844aa在线毛片 | 久久99精品久久久久久噜噜 | 成人午夜免费视频毛片 | av中文字幕在线观看 | 99精品视频在线观看re | 欧美一区二区免费 | 日韩在线免费视频 | 亚洲午夜精品一区二区 | 亚洲精品无码成人A片九色播放 | 国产一级淫 | 伊人无码高清 | 91九色国产视频 | 免费a一级毛片在线播放 | 成人午夜性a一级毛片美女 91精选 | 日韩成人一区二区 | 国产一区| 亚洲射吧 | 五月婷婷色视频 | 久久亚洲国产精品五月天婷 | 亚洲狠狠婷婷综合久久久久图片 | v片在线看 | 亚洲 欧美 另类 综合 偷拍 |