1、查找表中多余的重復記錄,重復記錄是根據(jù)單個字段(peopleId)來判斷

創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設|網(wǎng)站維護公司|優(yōu)化|托管以及網(wǎng)絡推廣,積累了大量的網(wǎng)站設計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設計服務,案例作品覆蓋成都PE包裝袋等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結合品牌形象的塑造,量身開發(fā)品質網(wǎng)站。
select
* from people
where peopleId in (select peopleId from
people group by peopleId having count(peopleId)
1)
2、刪除表中多余的重復記錄,重復記錄是根據(jù)單個字段(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”值有可能會相同,
現(xiàn)在就是需要查詢出在該表中的各記錄之間,“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
1、必須保證表中有主鍵或者唯一索引,或者某列數(shù)據(jù)不能重復。只有這樣,才可能使用一句SQL來實現(xiàn)。否則只能考慮其它辦法。下面的語句,假定BB列是不重復的,刪除后保存BB列值最大的那條記錄。
delete
from
表
where
aa
in
(select
aa
from
表
group
by
aa
having
count(aa)
1)
and
bb
not
in
(select
max(bb)
from
表
group
by
aa
having
count(aa)
1);
2、有多種寫法:
delete
A
from
B
where
A.AA
=
B.AA
delete
A
from
A,B
where
A.AA
=
B.AA
delete
A
where
AA
in
(select
AA
from
B)
3、使用into關鍵字:
select
*
into
新表名
from
原表
4、取數(shù)據(jù)前3位,字段必須是類似char類型,使用類似substring這樣的函數(shù)(SYBASE是substring,ORACLE是substr):
select
substring(字段,1,3)
from
表名
SqlServer2005及以上版本可以使用row_number函數(shù)來去重,
更低版本可以考慮另建一張表來重新插入。
b. 方法:
☆根據(jù)dname分組,查找出deptno最小的。然后再查找deptno不包含剛才查出來的。這樣就查詢出了所有的重復數(shù)據(jù)(除了deptno最小的那行)
方法2
刪除重復的行
單個字段的如果會了,多個字段也非常簡單。就是將group by 的字段增加為你想要的即可。
此處只寫一個,其他方法請仿照一個字段的寫即可。
查詢結果不含指定字段重復
2.表需要刪除重復的記錄(重復記錄保留1條),
3.查詢重復
4.1、查找表中多余的重復記錄,重復記錄是根據(jù)單個字段(peopleId)來判斷
4.2、刪除表中多余的重復記錄,重復記錄是根據(jù)單個字段(peopleId)來判斷,只留有rowid最小的記錄
4.3、查找表中多余的重復記錄(多個字段)
4.4、刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
4.5、查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
4.6.消除一個字段的左邊的第一位:
4.7.消除一個字段的右邊的第一位:
4.8.假刪除表中多余的重復記錄(多個字段),不包含rowid最小的記錄
查詢重復
首先設定表tb_a 唯一關鍵字段 xh,以及要查詢的重復字段 mc 則查詢mc重復的sqlserver語句如下
select mc from tb_a where xh not in (select min(xh) xh from tb_a group by mc)
新聞名稱:去重復sqlserver,一列數(shù)據(jù)怎么去重復
本文來源:http://chinadenli.net/article39/dsgisph.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站策劃、虛擬主機、定制開發(fā)、網(wǎng)站導航、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)