MSSQL中去除重复记录的复制方法(mssql重复记录复制)
当生成的MSSQL纪录中包含重复纪录时,不能复制表中有重复记录。可以通过三种方法来处理,并将他们放入一个新表中。
首先,可以使用SELECT DISTINCT语句来去除重复记录。SELECT DISTINCT 语句会检查表中每一行,如果行中的列具有唯一性,那么它就会保留,如果有重复的行,它就会被忽略掉,比如:
SELECT DISTINCT * INTO NewTable FROM OldTable
其次,也可以使用GROUP BY语句来实现去除重复记录的复制,这个语句能够将表中相同的记录归并到一起,只保留一条,然后把归并后的记录放到一张新表中,比如:
SELECT Field1,Field2,Field3 INTO NewTable FROM OldTable GROUP BY Field1,Field2,Field3
第三,还可以使用ROW_NUMBER() 函数,这个函数能够为每一条记录生成一个唯一的行号,如果某一行的行号重复了,就代表这一行的记录重复了,所以可以在复制的时候,只复制Floor(Row_number/2) 后为整数的行,来去除重复记录,比如:
SELECT * INTO NewTable
FROM
(SELECT *,ROW_NUMBER() OVER (PARTITION BY Field1,Field2 ORDER BY Field1,Field2) AS RNumber FROM OldTable) AS c
WHERE Floor(RNumber/2) = Floor(RNumber\2)
总之,上述3种方式都可以彻底解决MSSQL中去除重复记录的问题,选择语句要根据具体情况来定,以获得优化的处理结果。