SQL - 删除单个重复条目

时间:2015-03-20 16:27:30

标签: sql

我正在刷新自己的SQL和那个数据库我正在处理glitched(在线培训数据库,并不重要)并重复我的一个条目。它只是一个名字,姓氏,年龄数据库。

我想删除重复的条目 - 但是不能只执行一个简单的remove / where语句,因为它会删除这两个条目。

我知道如何使用临时表从数据库中删除所有重复项并重命名 - 但这似乎有些过分,我怀疑有一种更简单的方法。

3 个答案:

答案 0 :(得分:0)

哪个RDBMS?

在大多数情况下,您可以采取以下措施:

set rowcount 1
delete from tbl where firstname = 'john' and lastname = 'doe'

修剪重复项有更复杂的选项,但这应该对你有用。

答案 1 :(得分:0)

SQL Server你可以这样做:

WITH MyCTE AS
(
    SELECT firstname, 
           lastname, 
           age, ROW_NUMBER() OVER (ORDER BY firstname, lastname, age) AS rn
    FROM TableName
)
DELETE FROM MyCTE WHERE rn > 1

答案 2 :(得分:0)

如果数据库是Oracle数据库,您可以使用:rowid。

请参阅以下链接:Delete duplicate rows from Oracle tables

对于SQL Server,您也可以使用rowid。请参阅stackoverflow上的此主题。

如果数据库是MySQL,则stackoverflow上还有另一个线程。