我正在尝试整理数据库以删除重复项。 假设我有一个看起来像这个的数据库
Date | Value1 | Value2
01/01/2018 A B
01/01/2018 B A
02/01/2018 A B
在这种情况下,根据我的需要,前两行是相同的,所以我想删掉一行(让我们说第二行)。如果我使用SELECT DISTINCT它不会丢弃它,因为它们实际上是不同的。
有一个简单的程序吗?
谢谢
答案 0 :(得分:0)
您可以使用exists
运算符查找(并删除!)它们:
DELETE FROM mytable a
WHERE EXISTS (SELECT *
FROM mytable b
WHERE a.value1 = b.value2 AND
a.value2 = b.value1 AND
a.value1 < b.value1)
答案 1 :(得分:0)
这是一种可能性:
create table t(date,value1,value2);
insert into t values
('01/01/2018','A','B'),
('01/01/2018','B','A'),
('02/01/2018','A','B');
select distinct date,min(value1,value2) value1,max(value1,value2) value2 from t;