SQL - 删除表中重复的行

时间:2016-07-20 13:46:47

标签: sql combinations

我需要删除重复的行 -

我有这张桌子 -

source 我需要的结果 -

result

*只保留2列的一个组合(顺序不重要)

谢谢! (:

2 个答案:

答案 0 :(得分:3)

这是一种应该有效的方法:

select col1, col2
from t
where col1 <= col2
union all
select col1, col2
from t
where col1 > col2 and
      not exists (select 1 from t t2 where t2.col1 = t.col2 and t2.col2 = t.col1);

注意:这是一个SQL select语句,因此它不会删除表中的行。您似乎想要查询结果,而不是修改基础表。

答案 1 :(得分:0)

我对规范的解释&#34;只保留2列的一个组合,[列]顺序不重要&#34;:

SELECT col1, col2
FROM t
WHERE col1 <= col2
UNION
SELECT col2, col1
FROM t
WHERE col1 > col2;