删除SQL Server中除一条记录外的重复项

删除SQL Server中除一条记录外的重复项,sql,sql-server,Sql,Sql Server,在这里,我想删除所有值为1的记录,只保留一条记录。鉴于数据的性质,我建议删除所有行,并在中添加一条新记录: truncate table t; insert into t(column_1) values (1); 小心!truncate表删除表中的所有行。如果不知道数据库管理系统,就很难知道需要哪个查询。如果您的dbms支持cte和row_number(),则下面的查询将起作用 with cte as (select *,row_number()over(order by colu


在这里,我想删除所有值为1的记录,只保留一条记录。鉴于数据的性质,我建议删除所有行,并在中添加一条新记录:

truncate table t;

insert into t(column_1)
    values (1);

小心!
truncate表
删除表中的所有行。

如果不知道数据库管理系统,就很难知道需要哪个查询。如果您的dbms支持cte和row_number(),则下面的查询将起作用

with cte as
(select *,row_number()over(order by column_1)rn from table_name)t
delete cte where rn>1

在SQL Server中,这可以正常工作。

我删除了不一致的数据库标记。请仅使用您真正使用的数据库进行标记。这看起来也像一个公共IP地址,您是否应该共享它?@GordonLinoff好的。@Larnu很抱歉,这是我的错误注意到,该IP地址可能已在许多刮削网站上公开和共享,@ankitgiri。如果你没有好的防火墙规则,我建议你确保现在就有。您可能还需要升起一个自定义标志,要求主持人从中删除编辑。在一次采访中,有人问他,他只想通过保留一条记录来删除重复的数据。使用delete@ankitgiri . . . 你不接受这个答案有什么原因吗
delete
可能不是满足您要求的最佳方式。谢谢,它奏效了。非常欢迎您。如果您接受这个答案,我们将不胜感激,因为它是有效的。最好的祝愿。@ankitgiri您想删除除一行以外的所有行,而这个答案就是这样。有什么问题吗?只是好奇,因为你没有接受答案。尽管接受任何答案都是你的选择。