1。用rowid方法
成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司,提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
據(jù)據(jù)oracle帶的rowid屬性,進(jìn)行判斷,是否存在重復(fù),語(yǔ)句如下:
查數(shù)據(jù):
select * from table1 a where rowid
!=(select max(rowid)
from table1 b where a.name1=b.name1 and
a.name2=b.name2......)
刪數(shù)據(jù):
delete from table1 a where rowid
!=(select max(rowid)
from table1 b where a.name1=b.name1 and
a.name2=b.name2......)
2.group by方法
查數(shù)據(jù):
select count(num), max(name) from student --列出重復(fù)的記錄數(shù),并列出他的name屬性
group by num
having count(num) 1 --按num分組后找出表中num列重復(fù),即出現(xiàn)次數(shù)大于一次
刪數(shù)據(jù):
delete from student
group by num
having count(num) 1
這樣的話就把所有重復(fù)的都刪除了。
3.用distinct方法 -對(duì)于小的表比較有用
create table table_new as select distinct *
from table1 minux
truncate table table1;
insert into table1 select * from table_new;
select t.a,t.b,t.c from
(select a,b,c from 表A group by a,b,c) t
沒(méi)用到什么函數(shù),就一個(gè)group by ,是用來(lái)去重的,
你可以把括號(hào)里的先執(zhí)行,看下結(jié)果,外邊就是一個(gè)從括號(hào)里再選出a,b兩個(gè)字段
對(duì)重復(fù)字段只取包括其中一個(gè)的記錄的方法就這樣,還可以通過(guò)唯一id(如果存在的話,沒(méi)有的話,用row_number)比較
如
select * from cb_rqrj_djclhs a
where ID in (select min(id) from cb_rqrj_djclhs where gjzy=a.gjzy)