使用SQL删除反向重复行

Ash*_*win 0 sql duplicates

column1 column2
x       y
y       x
Run Code Online (Sandbox Code Playgroud)

如何消除这种重复?或在最坏的情况下只选择其中一个元组?

Erw*_*ter 5

隐瞒我们正在处理的RDBMS信息已成为提问者中的一种主流习惯。作为回应:这已经过测试并且可以与某些我不愿透露姓名的RDBMS一起使用。去搞清楚!

DELETE FROM tbl a
USING  tbl b
WHERE  (a.x, a.y) = (b.y, b.x)
AND    a.y > a.x  -- keep the one dupe with the biggest x
Run Code Online (Sandbox Code Playgroud)

假设没有与的欺骗x = y。无论如何,这将是普通副本。