方法一,
这是一种初级的删除重复记录的方法,我们利用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
第一步:为原表添加标识列。
           
| 代码如下 | 复制代码 | 
|       Alter Table TEST Add Id int Identity(1,1) | 
	  |
这样,表数据被处理成如下形式
          
| ID | ProductID | ProductName | Unit | 
            UnitPrice | 
        
| 1 | 1 | 
            North | 
             
            Bottole | 
            
            9.0 | 
        
| 2 | 2 | 
            Chang | 
             
             Bottole  | 
            
            20.0 | 
        
| 3 | 2 | 
            Chang | 
            
             Bottole  | 
            
            20.0 | 
        
| 4 | 3 | 
            Anistreed | 
            
            G | 
            
            1.0 | 
        
| 5 | 4 | 
            Thu | 
            
            Kg | 
            
            2.8 | 
        
| 6 | 4 | 
            Thu | 
            
            Kg | 
            
            2.8 | 
        
| 7 | 4 | 
            Thu | 
            
            Kg | 
            
            2.8 | 
        
| 代码如下 | 复制代码 | 
| 
 Delete from TEST Where ID Not In (Select MIN(ID) From TEST Group by ProdutyID )  | 
	  |