【www.bbyears.com--班主任工作总结】
方法一,
这是一种初级的删除重复记录的方法,我们利用distinct取唯一数据存到一个表。
代码如下select distinct * into #tmp from tablename
然后删除原来的表
代码如下drop table tablename
再创建一个与原来表一样名字,然后利用select into 把tmp表存入以前的表。
代码如下select * into tablename from #tmp
最后删除旧表
代码如下drop table # tmp
这种方法操作简单但是,如果你只是查询不重复记录我们就不能使用此方法了,可以使用其它办法。
另一种办法,一条查询语名句
代码如下 WITH Dups As
(
Select [ID],[Name],[Age],[Sex]
, ROW_NUMBER() OVER(Partition By [Name] Order By (SELECT 0)) AS rn
,RANK() OVER(Partition By [Name] Order By (SELECT 0)) AS rnk
FROM Employee
)
DELETE FROM Dups
WHERE rn<>rnk;
上面的方法我都测试过,都不错了,但后来baidu的一种不错的做法
ProductID
ProductName
Unit
UnitPrice
1
North
Bottole
9.0
2
Chang
Bottole
20.0
2
Chang
Bottole
20.0
3
Anistreed
G
1.0
4
Thu
Kg
2.8
4
Thu
Kg
2.8
4
Thu
Kg
2.8
产品Chang和Tofu的记录在产品信息表中存在重复。现在要删除这些重复的记录,只保留其中的一条。
目的:删除表中的重复行,每个Product只留下一条记录。假设表名为:TEST
第一步:为原表添加标识列。
这样,表数据被处理成如下形式
ID ProductID ProductName Unit
UnitPrice
1 1North
Bottole
9.0
2 2Chang
Bottole
20.0
3 2Chang
Bottole
20.0
4 3Anistreed
G
1.0
5 4Thu
Kg
2.8
6 4Thu
Kg
2.8
7 4Thu
Kg
2.8
第二步:运行以下SQL 就行了 代码如下
Delete from TEST Where ID Not In (Select MIN(ID) From TEST Group by ProdutyID )