資料庫怎麼查重復的數據
A. 如何在同一個資料庫表中查詢出相同的記錄
方法如下:
select * from 你的表名
a where id=(select min(id) from 你的表名 whereitem_id=a.item_id)
在查詢之前先把資料庫表中的第一行復制到sid里在去,然後讓sid和下面的每一行進行比較
取所有相同的行的最小的一下,也可以取最大的,結果是一樣的。
這樣讓所有的行都比較不就得到不重復的數據了。
B. sql語句如何查詢一個表中某一列的相同數據
假設表名是num,列名是a,則查詢語句為:
SELECT * FROM num WHERE a IN(
SELECT a FROM num GROUP BY a HAVING COUNT(a)>1
)
其中:
SELECT 語句:SELECT 語句用於從表中選取數據。結果被存儲在一個結果表中(稱為結果集)。
WHERE 子句:如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句。
GROUP BY 語句:GROUP BY 語句用於結合合計函數,根據一個或多個列巧胡對結果集進行分組。
HAVING 子句:在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用。
COUNT() 函數:返回匹配指定條件的行數。
(2)資料庫怎麼查重復的數據擴展閱讀:
sql語言特點:
1、一體化:SQL集數據定義DDL、數據操縱DML和數據控制DCL於一體,可以完成資料庫中的全部工作。
2、使用方式靈活:它具有兩種使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主語言中使用。
3、非過程化:只提操作要求,不必描述操作步驟,也不需要導航。使用時只需要告訴計算機「做什麼」,而不需要告訴它「怎麼做」。
4、語言簡潔,語法簡單,好學好用:在ANSI標准中,只包含了94個英文單詞,核心功能只用6個動詞,語法接孝凱攔近英語口語。
C. 如何查找資料庫中的重復數據
實現方式如下:
Setcnn=CreateObject("ADODB.Connection")
cnn.Open"Provider=Microsoft.Jet.Oledb.4.0;dataSource="&ThisWorkbook.Path&"排課數據.mdb"
SQL="Select星期&節&班級,count(星期&節&班級)from排課where星期isnotnullgroupby星期&節&班級havingcount(星期&節&班級)>1"
Setrs=CreateObject("ADODB.Recordset")
rs.OpenSQL,cnn,1,3
Ifrs.RecordCountThen
Fori=1Tors.RecordCount
s=s&vbCrLf&"星期"&rs.Fields(0)&"班,重復次數:"&rs.Fields(1)
rs.MoveNext
Next
MsgBox"有"&rs.RecordCount&"條記錄重復:"&s
Else
MsgBox"沒有發現重復記錄"
EndIf
rs.Close
cnn.Close
Setrs=Nothing
Setcnn=Nothing
EndSub
1。刪除全部重復記錄(慎用)
Delete表Where重復欄位In(Select重復欄位From表GroupBy重復欄位HavingCount(*)>1)
2。保留一條(這個應該是大多數人所需要的^_^)
DeleteHZTWhereIDNotIn(SelectMax(ID)FromHZTGroupByTitle)
註:此處保留ID最大一條記錄
3、查找表中多餘的重復記錄(多個欄位)
select*fromvitaea
where(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)4、刪除表中多餘的重復記錄(多個欄位),只留有rowid最小的記錄
deletefromvitaea
where(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)
androwidnotin(selectmin(rowid)fromvitaegroupbypeopleId,seqhavingcount(*)>1)
D. sql怎麼查詢兩個欄位相同的記錄
1、查詢重復的數據,只查詢重復記錄,不管其餘信息,如ID什麼的:
1selectuid,timefromztestGROUPBYuid,timehavingcount(*)>1;
查出結果是
uid time
1 1
E. sql怎麼查某個欄位相同的數據
select*from表名where數據相同的欄位in(select數據相同的欄位from(select*,ROW_NUMBER()over(partitionby數據相同的欄位orderby數據相同的欄位)numfrom表名)awherea.num>1)
F. 資料庫進階:SQL Server資料庫多種方式查找重復記錄
SQL Server資料庫多種方式查找重復記錄:
示例 表stuinfo 有三個欄位recno(自增) stuid stuname
建該表的Sql語句如下
CREATE TABLE [StuInfo] ([recno] [int] IDENTITY ( ) NOT NULL [stuid] [varchar] ( ) COLLATE Chinese_PRC_CI_AS NOT NULL [stuname] [varchar] ( ) COLLATE Chinese_PRC_CI_AS NOT NULL) ON [PRIMARY]GO
查某一列(或多列)的重復值(只可以查出重復記錄的值 不能查出整個記錄的信息)
例如:查找stuid stuname重復的記錄
select stuid stuname from stuinfogroup by stuid stunamehaving(count(*))>
查某一列有重復宴辯值的記局侍錄(此方法查出的是所有重復的記錄 如果有兩條記錄重復的 就查出兩條)
例如:查找stuid重復的記錄
select * from stuinfowhere stuid in (select stuid from stuinfogroup by stuidhaving(count(*))> 桐祥吵)
查某一列有重復值的記錄(只顯示多餘的記錄 也就是說如果有三條記錄重復的 就顯示兩條)
前提 需有一個不重復的列 此示例為recno
例如:查找stuid重復的記錄
lishixin/Article/program/SQLServer/201311/22365