SQL Server去掉重复行
在Sql Server中去掉重复行的方法,网上查了很多,可是自己太笨了只有一个实验成功了。
我的项目要求:
现在有两个表A、B,A里面有重复的记录,B是一个空表,表结构与A是一样的,要求将A表里面重复行去掉,并Copy到B表中;
那么我的实现步骤如下:
?
insert into B select id,[statement],bookname,word,speech,features from Awhere id in(select max(id) from B group by [statement],bookName,word)
?这样就将A表里面重复行去掉了;where后面的意思就是去掉重复的行,只取重复行中的一行,而且选择ID为最大的。
?
下面是我查到的另一种方法:
(如果有唯一标识列)
?
delete table from table awhere exists(select 1 from table where a.name = name and a.pwd = pwd and a.id < id)
?table为要操作的表名
还有一种方法是:
?
select distinct * from yourTable
最后总结一下:
像 ? ?insert into 表名 select ......
这样的句子,是将一个表Copy到另一个与之表结构相同的表中。?
?
?