我在A和B列中有一个包含以下值的表:
**A | B**
1 | 2
2 | 1
3 | 4
4 | 3
我只想要:
1 | 2
3 | 4
关于如何做到这一点的任何想法?
答案 0 :(得分:0)
你以什么顺序返回行?就您的订单而言,您可以使用;
SELECT X.* FROM MYTABLE X
LEFT JOIN MYTABLE Y ON X.A = Y.B AND X.B = Y.A
WHERE X.A < X.B
或
SELECT X.* FROM MYTABLE X
LEFT JOIN MYTABLE Y ON X.A = Y.B AND X.B = Y.A
WHERE X.rowid < Y.rowid
答案 1 :(得分:0)
您要删除所有具有重复项的行,即存在重复行的所有行:
DELETE FROM MyTable
WHERE EXISTS (SELECT 1
FROM MyTable AS T2
WHERE T2.A = MyTable.B
AND T2.B = MyTable.A
AND A < B)
(A < B
确保只删除两个重复行中的一个。)