如何查找数据库中的重复数据?

如何查找数据库中的重复数据?,第1张

实现方式如下:

  Dim cnn As Object, rs As Object, SQL$, i&, s$

    Set cnn = CreateObject("ADODB.Connection")

    cnn.Open "Provider=Microsoft.Jet.Oledb.4.0data Source=" & ThisWorkbook.Path & "\排课数据.mdb"

    SQL = "Select 星期&节&班级,count(星期&节&班级) from 排课 where 星期 is not null group by 星期&节&班级 having count(星期&节&班级)>1"

    Set rs = CreateObject("ADODB.Recordset")

    rs.Open SQL, cnn, 1, 3

    If rs.RecordCount Then

        For i = 1 To rs.RecordCount

            s = s & vbCrLf & "星期" & rs.Fields(0) & "班,重复次数:" & rs.Fields(1)

            rs.MoveNext

        Next

        MsgBox "有" & rs.RecordCount & "条记录重复:" & s

    Else

        MsgBox "没有发现重复记录"

    End If

    rs.Close

    cnn.Close

    Set rs = Nothing

    Set cnn = Nothing

End Sub

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)

在数据库中有1张表,其中有个order_number

字段现在有这么1个需求:查询出order_numbe

r重复的所有记录.

我的想法以下:

将所有记录的order_number

取出

两张表。  如果表结构一样的话。

你可以使用

INTERSECT – 仅仅给出2个表都有的数据(去除重复记录)

来实现这个功能。

下面是例子代码:

这里的SQL,使用以下的测试表,与测试数据 

CREATE TABLE union_tab_1 (

  id   INT,

  val  VARCHAR(10)

)

CREATE TABLE union_tab_2 (

  id   INT,

  val  VARCHAR(10)

)

INSERT INTO union_tab_1 VALUES(1, 'A')

INSERT INTO union_tab_1 VALUES(2, 'B')

INSERT INTO union_tab_1 VALUES(3, 'C')

INSERT INTO union_tab_2 VALUES(1, 'A')

INSERT INTO union_tab_2 VALUES(1, 'A')

INSERT INTO union_tab_2 VALUES(2, 'B')

INSERT INTO union_tab_2 VALUES(4, 'D')

SQL> SELECT * FROM union_tab_1

  2  INTERSECT

  3  SELECT * FROM union_tab_2

        ID VAL

---------- --------------------

         1 A

         2 B


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9250232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存