ÎÒÓÐÒ»ÕÅ±í£¬ÀïÃæÓÐ6¸ö×ֶΣ¬·Ö±ðÊÇa1,a2,a3,a4,a5,a6£¬ÎÒÏë¸ù¾Ýa1,a2,a3ÕâÈý¸ö×Ö¶ÎÀ´ÌÞ³ýÖØ¸´µÄÊý¾Ý£¬Ö»ÒªÕâ3¸ö×ֶεÄÖµÏàµÈ£¬ÎÒ¾ÍÌÞ³ýµôÖØ¸´µÄ£¬Ó¦¸ÃÔõô×ö£¿Ð»Ð»£¬¸÷λ´óÏÀ¡£
DELETE from table WHERE a1=a2 and a2=a3
select a1,a2,a3,min(a4) as a4,min(a5) as a5,min(a6) as a6 into #Temp
from [TableName]
group by a1,a2,a3
having count(*)>1
delete t1
from [TableName] t1,#Temp t2
where t1.a1=t2.a1 and t1.a2=t2.a2 and t1.a3=t2.a3
insert into [TableName]
select * from #Temp
drop table #Temp
ºÃÁË£¬¸ø·Ö°É
create table #tmpTbl
(id INT, a1 int, a2 int, a3 int, a4 int)
insert into #tmpTbl
select 1,1,1,2,3
union all select 2,1,1,2,4
union all select 3,1,2,2,4
union all select 4,1,2,2,4
select * from #tmpTbl
delete from #tmpTbl where id not in(
select MIN(id) from #tmpTbl
group by a1,a2,a3)
select * from #tmpTbl
drop table #tmpTbl
delete from test where al=a2 and a2=a3
SQL code:
delete from #tmpTbl a
where (a1,a2,a3) in (select a1,a2,a3 from #tmpTbl group by a1,a2,a3 having count(*) > 1)
and rowid not in (select min(rowid) from #tmpTblgroup by a1,a2,a3 having count(*)>
СµÜ£¬×î½üҪתÐÐÈ¥×öoracle¿ª·¢ÁË£¬ÓÉÓÚ´óѧ±Ïҵʱ£¬×ßÁ˸öÍä·£¬ÏÖÔÚºÜСÐÄ£¬ÎÊÏ£¬×öPL/SQLÓÐûÓÐǰ;£¿£¿£¿
µ±È»ÎÒ˵µÄÕâ¸öǰ;ÊÇÖ¸ ÒÔºóÒªÌø²Û£¬Êг¡¶ÔÕâÑùµÄÈ˲ŵÄÐèÇóÁ¿´ó²»´ó£¿£¿
3q ÄÇ¿´À´»¹Ö»ÄÜÏȽӴ ......