亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

sql分組后二次匯總(處理表重復(fù)記錄查詢和刪除)的實(shí)現(xiàn)方法

2024-08-31 01:04:39
字體:
供稿:網(wǎng)友

--處理表重復(fù)記錄(查詢和刪除)
/******************************************************************************************************************************************************
1、Num、Name相同的重復(fù)值記錄,沒有大小關(guān)系只保留一條
2、Name相同,ID有大小關(guān)系時(shí),保留大或小其中一個(gè)記錄
整理人:中國風(fēng)(Roy)

日期:2008.06.06
******************************************************************************************************************************************************/

--1、用于查詢重復(fù)處理記錄(如果列沒有大小關(guān)系時(shí)2000用生成自增列和臨時(shí)表處理,SQL2005用row_number函數(shù)處理)

--> --> (Roy)生成測試數(shù)據(jù)
 

if not object_id('Tempdb..#T') is null drop table #TGoCreate table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))Insert #Tselect 1,N'A',N'A1' union allselect 2,N'A',N'A2' union allselect 3,N'A',N'A3' union allselect 4,N'B',N'B1' union allselect 5,N'B',N'B2'Go


--I、Name相同ID最小的記錄(推薦用1,2,3),方法3在SQl05時(shí),效率高于1、2
方法1:
Select * from #T a where not exists(select 1 from #T where Name=a.Name and ID<a.ID)

方法2:
select a.* from #T a join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID

方法3:
select * from #T a where ID=(select min(ID) from #T where Name=a.Name)

方法4:
select a.* from #T a join #T b on a.Name=b.Name and a.ID>=b.ID group by a.ID,a.Name,a.Memo having count(1)=1

方法5:
select * from #T a group by ID,Name,Memo having ID=(select min(ID)from #T where Name=a.Name)

方法6:
select * from #T a where (select count(1) from #T where Name=a.Name and ID<a.ID)=0

方法7:
select * from #T a where ID=(select top 1 ID from #T where Name=a.name order by ID)

方法8:
select * from #T a where ID!>all(select ID from #T where Name=a.Name)

方法9(注:ID為唯一時(shí)可用):
select * from #T a where ID in(select min(ID) from #T group by Name)

--SQL2005:

方法10:
select ID,Name,Memo from (select *,min(ID)over(partition by Name) as MinID from #T a)T where ID=MinID

方法11:

select ID,Name,Memo from (select *,row_number()over(partition by Name order by ID) as MinID from #T a)T where MinID=1

生成結(jié)果:
/*
ID          Name Memo
----------- ---- ----
1           A    A1
4           B    B1

(2 行受影響)
*/


--II、Name相同ID最大的記錄,與min相反:
方法1:
Select * from #T a where not exists(select 1 from #T where Name=a.Name and ID>a.ID)

方法2:
select a.* from #T a join (select max(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID order by ID

方法3:
select * from #T a where ID=(select max(ID) from #T where Name=a.Name) order by ID

方法4:
select a.* from #T a join #T b on a.Name=b.Name and a.ID<=b.ID group by a.ID,a.Name,a.Memo having count(1)=1

方法5:
select * from #T a group by ID,Name,Memo having ID=(select max(ID)from #T where Name=a.Name)

方法6:
select * from #T a where (select count(1) from #T where Name=a.Name and ID>a.ID)=0

方法7:
select * from #T a where ID=(select top 1 ID from #T where Name=a.name order by ID desc)

方法8:
select * from #T a where ID!<all(select ID from #T where Name=a.Name)

方法9(注:ID為唯一時(shí)可用):
select * from #T a where ID in(select max(ID) from #T group by Name)

--SQL2005:

方法10:
select ID,Name,Memo from (select *,max(ID)over(partition by Name) as MinID from #T a)T where ID=MinID

方法11:
select ID,Name,Memo from (select *,row_number()over(partition by Name order by ID desc) as MinID from #T a)T where MinID=1

生成結(jié)果2:
/*
ID          Name Memo
----------- ---- ----
3           A    A3
5           B    B2

(2 行受影響)
*/

 

--2、刪除重復(fù)記錄有大小關(guān)系時(shí),保留大或小其中一個(gè)記錄


--> --> (Roy)生成測試數(shù)據(jù)

if not object_id('Tempdb..#T') is null
    drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
Go

--I、Name相同ID最小的記錄(推薦用1,2,3),保留最小一條
方法1:
delete a from #T a where  exists(select 1 from #T where Name=a.Name and ID<a.ID)

方法2:
delete a  from #T a left join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID where b.Id is null

方法3:
delete a from #T a where ID not in (select min(ID) from #T where Name=a.Name)

方法4(注:ID為唯一時(shí)可用):
delete a from #T a where ID not in(select min(ID)from #T group by Name)

方法5:
delete a from #T a where (select count(1) from #T where Name=a.Name and ID<a.ID)>0

方法6:
delete a from #T a where ID<>(select top 1 ID from #T where Name=a.name order by ID)

方法7:
delete a from #T a where ID>any(select ID from #T where Name=a.Name)

 

select * from #T

生成結(jié)果:
/*
ID          Name Memo
----------- ---- ----
1           A    A1
4           B    B1

(2 行受影響)
*/


--II、Name相同ID保留最大的一條記錄:

方法1:
delete a from #T a where  exists(select 1 from #T where Name=a.Name and ID>a.ID)

方法2:
delete a  from #T a left join (select max(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID where b.Id is null

方法3:
delete a from #T a where ID not in (select max(ID) from #T where Name=a.Name)

方法4(注:ID為唯一時(shí)可用):
delete a from #T a where ID not in(select max(ID)from #T group by Name)

方法5:
delete a from #T a where (select count(1) from #T where Name=a.Name and ID>a.ID)>0

方法6:
delete a from #T a where ID<>(select top 1 ID from #T where Name=a.name order by ID desc)

方法7:
delete a from #T a where ID<any(select ID from #T where Name=a.Name)


select * from #T
/*
ID          Name Memo
----------- ---- ----
3           A    A3
5           B    B2

(2 行受影響)
*/

 

 

--3、刪除重復(fù)記錄沒有大小關(guān)系時(shí),處理重復(fù)值


--> --> (Roy)生成測試數(shù)據(jù)
 
if not object_id('Tempdb..#T') is null
    drop table #T
Go
Create table #T([Num] int,[Name] nvarchar(1))
Insert #T
select 1,N'A' union all
select 1,N'A' union all
select 1,N'A' union all
select 2,N'B' union all
select 2,N'B'
Go

方法1:
if object_id('Tempdb..#') is not null
    drop table #
Select distinct * into # from #T--排除重復(fù)記錄結(jié)果集生成臨時(shí)表#

truncate table #T--清空表

insert #T select * from #    --把臨時(shí)表#插入到表#T中

--查看結(jié)果
select * from #T

/*
Num         Name
----------- ----
1           A
2           B

(2 行受影響)
*/

--重新執(zhí)行測試數(shù)據(jù)后用方法2
方法2:

alter table #T add ID int identity--新增標(biāo)識(shí)列
go
delete a from  #T a where  exists(select 1 from #T where Num=a.Num and Name=a.Name and ID>a.ID)--只保留一條記錄
go
alter table #T drop column ID--刪除標(biāo)識(shí)列

--查看結(jié)果
select * from #T

/*
Num         Name
----------- ----
1           A
2           B

(2 行受影響)

*/

--重新執(zhí)行測試數(shù)據(jù)后用方法3
方法3:
declare Roy_Cursor cursor local for
select count(1)-1,Num,Name from #T group by Num,Name having count(1)>1
declare @con int,@Num int,@Name nvarchar(1)
open Roy_Cursor
fetch next from Roy_Cursor into @con,@Num,@Name
while @@Fetch_status=0
begin
    set rowcount @con;
    delete #T where Num=@Num and Name=@Name
    set rowcount 0;
    fetch next from Roy_Cursor into @con,@Num,@Name
end
close Roy_Cursor
deallocate Roy_Cursor

--查看結(jié)果
select * from #T
/*
Num         Name
----------- ----
1           A
2           B

(2 行受影響)


注:相關(guān)教程知識(shí)閱讀請移步到MSSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产桃色电影在线播放| 亚洲天堂久久| 91久久综合亚洲鲁鲁五月天| 久久久久久久久久久久久9999| 成人精品国产一区二区4080| 国产区精品在线| 久久riav二区三区| 欧美日韩精品一本二本三本| 欧美综合亚洲图片综合区| 少妇一级淫片免费放播放| 国产精品99久久久久久大便| 97婷婷大伊香蕉精品视频| 欧美做爰爽爽爽爽爽爽| 日本wwwxx| 国产精品视频第一页| 日韩专区视频网站| 欧美人成免费网站| 亚洲熟妇av乱码在线观看| 亚洲二区三区不卡| 国产主播一区二区| 日韩欧美中文字幕一区二区| 国产精品一二三四五区| 日本在线成人| 人人妻人人爽人人澡人人精品| 香港一级纯黄大片| 视频国产一区二区三区| jizz欧美性20| 你懂的亚洲视频| 一区二区成人av| 美国十次av导航亚洲入口| 91精品国产综合久久久久久漫画| 亚洲成人影院在线观看| 一夜七次郎国产精品亚洲| 99成人精品视频| 午夜免费一级片| 免费视频爱爱太爽了| 国产在线资源一区| 国产成人一二片| 日本韩国欧美中文字幕| 一区二区三区视频免费看| 久久久999精品视频| 欧美久久精品午夜青青大伊人| 不卡一区二区三区四区五区| 亚洲精品字幕在线| 中文字幕亚洲一区二区三区五十路| 欧美激情国产在线| 伦理一区二区| 国产成人精品免费久久久久| 8x8x8x视频在线观看| 欧美一区二区三区在线观看视频| 午夜日韩福利| 熟妇无码乱子成人精品| 尤物视频在线| 成年人视频在线免费观看| 国产福利一区二区三区| 精品人妻一区二区免费| 日韩大尺度在线观看| 日本成人超碰在线观看| 成年网站在线免费观看| sm捆绑调教视频| 国内精品久久久久影院薰衣草| 欧美综合在线观看视频| 国产精品久久久久蜜臀| 蜜桃传媒一区二区亚洲| 国产欧美在线一区二区| 亚洲国产精品系列| 国产一区二区毛片| 国产女主播在线观看| 日韩免费特黄一二三区| 成人美女免费网站视频| www.麻豆av.com| 极品白嫩少妇无套内谢| 538精品在线视频| 欧美成人第一区| 国产夫妻在线播放| 亚洲第一视频区| 国产色视频网站| 一级毛片在线观| 亚洲色图美腿丝袜| 2021国产精品视频| www国产无套内射com| 国产成人无码一二三区视频| 嫩草国产精品入口| 性网站在线播放| 成人伊人222| 婷婷精品进入| 国内拍拍自拍视频在线观看| 星空大象在线观看免费播放| 中文字幕欧美精品在线| 国内精品一区二区三区四区| 日韩123区| a中文字幕www| 2021久久精品国产99国产精品| 日韩国产精品久久久| 国产.com| 欧美亚洲视频一区| 日韩一区二区电影网| 精品国产aⅴ| 一区二区中文字幕在线| 在线播放国产一区| 国产女同互慰高潮91漫画| 国产精品二区视频| 精品久久久噜噜噜噜久久图片| 亚洲啊v在线免费视频| 久久亚洲午夜电影| 亚洲成人午夜电影| 日韩一级网站| 日韩另类视频| 亚洲美女在线国产| 91精品一久久香蕉国产线看观看| 天天干在线影院| 国产一级片自拍| 一级片视频在线观看| 亚洲品质自拍视频网站| 国产亚洲短视频| 国产99午夜精品一区二区三区| 1024精品视频| 亚州精品一二三区| 亚洲国产精品免费| 久久av资源网| 国产福利精品一区二区三区| 开心婷婷激情五月| 免费在线日本| 色哟哟网站在线观看| 草草视频在线| 各处沟厕大尺度偷拍女厕嘘嘘| 国产精品诱惑| 精品久久电影| 青春娱乐分类视频精品2动漫| 伦理一区二区三区| 久久狠狠一本精品综合网| 国产精品香蕉一区二区三区| 国产污视频在线看| 国产国语亲子伦亲子| 男女18免费网站视频| 精品不卡一区二区| 97在线观视频免费观看| 国内伊人久久久久久网站视频| 波多野结衣一区二区三区四区| 久久夜色撩人精品| 成人免费在线视频网址| 岛国av在线不卡| 日本久久精品视频| youjizz在线视频| 午夜精品美女久久久久av福利| 日韩中文字幕高清在线观看| 色帝国亚洲欧美在线| 日韩欧美国产免费播放| 国产精品亚洲成人| 免播放器亚洲| 一区二区三区在线观看免费| 亚洲欧美二区三区| 成人女同在线观看| 国产极品在线观看| 日韩在线视频免费观看| aa国产精品| 啊啊啊一区二区| 精品成人乱色一区二区| 午夜影院日韩| 国产日产欧美精品一区二区三区| 欧美精品一二三四| 国产视频九色蝌蚪| 中文字字幕在线中文乱码电影| 日本在线观看视频一区| 日本少妇xxxx软件| 国产肉体ⅹxxx137大胆| 新91视频在线观看| 人妻熟女aⅴ一区二区三区汇编| 91精品久久香蕉国产线看观看| 99热99在线| 久久99精品波多结衣一区| 国产网站免费在线观看| 中文字幕一区二区人妻电影| 亚洲国产一区在线观看| 波多野结衣有码| 午夜视黄欧洲亚洲| 日本高清中文字幕| 国产一区二区三区三州| 欧美a级大片在线| 97视频网站| 亚洲成熟女性毛茸茸| 亚洲网站在线看| 尤物视频一区二区| 人人艹在线视频| 成人在线视频中文字幕| 丝袜亚洲另类欧美重口| 91精品久久久久久久久中文字幕| 99香蕉国产精品偷在线观看| bt欧美亚洲午夜电影天堂| 伊人一区二区三区| 日本私人网站在线观看| av一区二区高清| 品天堂xxxx高清| 一区二区三区四区国产精品| 国产精品大片| 中文日本高清免费| 亚洲sss视频| 日本在线观看一区二区| 精品69视频一区二区三区Q| 国产精品久久久久久久久电影网| 亚洲国产精品午夜在线观看| 成人婷婷网色偷偷亚洲男人的天堂| 老汉色影院首页| 九九精品在线观看视频| 国产精品久久久久白浆| 亚洲国产综合在线| av一级二级| 8848成人影院| 久久久久久久久久一区二区三区| 日韩成人影音| 亚洲日本一区二区三区| 国卡一卡二卡三免费网站| 中文字幕视频免费在线观看| 不卡av电影在线观看| 国产乱国产乱老熟| 日本免费看黄色| 日本熟妇人妻中出| av免费一区二区| 日本护士做爰视频| 久久精品视频91| 日本不卡久久| 杨钰莹一级淫片aaaaaa播放| 国产一区二区三区精品久久久| 国产精品久久久影院| 亚洲综合五月天| 久久亚洲精品小早川怜子| 午夜一区二区三区不卡视频| 日韩美女免费观看| 国产精品亚洲电影久久成人影院| 久久精品国产sm调教网站演员| 国产九色porn网址| 在线视频日韩精品| 国模精品视频一区二区| av观看免费| 中国jizz妇女jizz妇女| 亚洲成a人片在线观看中文| 一本色道久久综合亚洲精品婷婷| 亚洲色图另类专区| 亚洲天堂一区在线| 国产传媒国产传媒| 欧美精品入口蜜桃| 欧美一区2区视频在线观看| 色偷偷偷在线视频播放| а√中文在线8| 日韩午夜精品| 欧美日韩日日骚| 自拍一级黄色片| 日本在线xxx| 粉嫩小泬无遮挡久久久久久| 日本乱人伦a精品| 日韩精品123区| 男人的天堂av网| 亚洲一区精品在线观看| 成年免费视频| 九九久久成人| 色版视频在线观看| 欧美成人xxxxx| 一级视频在线观看视频在线啦啦| 中文欧美日韩| 成人小视频在线观看免费| 成人免费一区二区三区牛牛| 无码人妻久久一区二区三区不卡| 日韩一区二区三区四区视频| 久久国产免费视频| 91视频精品| bt电影在线| 91亚洲人电影| 女同互添互慰av毛片观看| 69视频免费在线观看| 国产一线天粉嫩馒头极品av| 国产精品无码专区在线观看| 欧美一区二区三区四区久久| 天天干天天爽| 成人午夜免费福利| 免费看的av| 国产视频福利一区| 国产精品久久久久久久久免费相片| 黄瓜视频网站| 国产一区二区观看| 国产精品亚洲天堂| 91精品网站在线观看| 国产精品涩涩涩视频网站| 成人系列视频| heyzo久久| 日韩av在线播放中文字幕| 91精品国产经典在线观看| 亚洲在线免费观看视频| 黄色免费视频网站| 亚洲wwww| 严阵以待中文社区| 黄色成人在线免费| 波多野结衣 久久| 国产www免费观看| 欧美成人性色生活仑片| 国产99在线 | 亚洲| 亚洲精品大尺度| 日韩一区二区三区高清免费看看| 日韩欧美一二三区| 亚洲视频在线观看一区二区三区| 国产成人一区二区三区影院| 亚洲自拍三区| 亚洲国产高清在线观看| 最新国产の精品合集bt伙计| 噜噜噜噜噜久久久久久91| 无遮挡爽大片在线观看视频| 91精品国产一区二区人妖| www.xxx黄| 91免费看蜜桃| 91free张津瑜movies| 日韩电视剧在线观看免费网站| 久久看片网站| 欧美狂猛xxxxx乱大交3| 92国产精品视频| 老牛国内精品亚洲成av人片| 好吊妞视频这里有精品| 亚洲护士老师的毛茸茸最新章节| 国产精品 日韩| 日韩欧美国产综合在线一区二区三区| 亚洲人成网www| 国产在线一区视频| 9i精品福利一区二区三区| 国产91白丝在线播放| 国产一二三四五| www.98色噜噜噜| 中文无码av一区二区三区| 老司机精品视频在线观看6| 日韩午夜在线电影| 国产精品久久久久久久午夜|