如何从表中删除重复行但保留它们的不同?

时间:2013-02-22 20:31:23

标签: sql tsql rank

Catch是,整行都是一样的。

表:

Hello
Hello
Hello
Bye
Bye
Good Morning
Good Morning

我想离开:

Hello
Bye
Good Morning

我知道你可以在这里使用RANK(),但我从来没有真正使用它,所以我不太确定。

任何人都可以帮我一把吗?

1 个答案:

答案 0 :(得分:7)

您可以使用row_number()然后删除表格中没有行号1的所有内容:

;with cte as
(
  select col,
    row_number() over(partition by col order by col) rn
  from yourtable
)
delete 
from cte 
where rn > 1;

请参阅SQL Fiddle with Demo