表 table1
字段 id,name,time,column,commnet
记录 1,aaa,111,03,xyz
记录 2,bbb,231,01,xyz
记录 3,aaa,111,03,xyz
记录 4,aaa,111,03,xyz
记录 5,aaa,111,03,xyz
记录 6,aaa,111,03,xyz
记录 7,ccc,111,03,xyz
发现记录1、3、4、5、6是冗余记录
最近发现库中某表有很多这样的冗余记录(比上面例子更严重的情况。恩,1万多条冗余记录-.-')
领导急了!
怎么办?
来,让我们冷静的想一想......
首先,现在我们要查出所有这些捣蛋鬼——冗余记录!
行动起来!先写SQL吧,可能很多朋友立即想到distinct
在此说明一下distinct,他返回的是对象中唯一的记录(如果有表中存在自增字段,那么select distinct * from table与select * from table返回的结果是相同的),而我们需要查询的是出现次数超过1的记录。
我们先要用到having而不是distinct。(至于distinct,后面我们肯定也会用到)
SQL:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

注:select中出现prgid字段纯粹是为了传给程序需要的DataSet作为DataGrid的DataKeyFild用
现在有了查找所有重复记录的SQL,接下来怎么做?
直接删除他们么?
不!那样连想要的记录也一起删掉了,至少要分别保留一条记录!
一条SQL语句恐怕达不到目的。恩,现在需要临时表,然后可以用视图,最好还是写在存储过程里

2

3

4

5
