从表中删除重复项

时间:2015-09-22 15:06:36

标签: sql-server sql-server-2008

如何从表中删除重复项?我知道有很多这样的问题,但总的来说有一个独特的专栏,在我看来,我没有一个独特的专栏。 基本上,我的表看起来像:

iOS8 SDK

我想删除两个相同的行中的一个。

2 个答案:

答案 0 :(得分:2)

你可以做这样的事情

with x as   (select  Name , LastName , someMoreData,rn = row_number()
        over(PARTITION BY Name , LastName , someMoreData order by Name
  )
        FROM yourtable)
   delete x where rn > 1

答案 1 :(得分:1)

如果没有关于身份和顺序的详细信息,并且仅根据您的示例,我可以提出此解决方案:

SELECT DISTINCT * INTO #tmp FROM your_table;
GO
TRUNCATE TABLE your_table;
GO
INSERT your_table
SELECT * FROM #tmp
GO
DROP TABLE #tmp
  1. 从基本表中选择唯一的行到临时表#tmp
  2. 删除基本表格中的所有数据
  3. 将数据从临时表移动到基本表
  4. 删除临时表