从表中过滤不同的行

时间:2015-07-01 06:46:18

标签: sql-server sql-server-2008

我有一个包含两列架构的表格:

ID1,ID2

值如下:

x y
y x
a b
b a

我只想将结果集作为一个整体:

x y 
a b

我想删除重复的

需要sql查询。

2 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是使用LEFT JOIN这样的方式。

SQL Fiddle

<强>查询

SELECT T1.ID1,T1.ID2 
FROM YourTable T1
LEFT JOIN YourTable T2
ON T1.ID1 = T2.ID2
AND T1.ID2 = T2.ID1
AND T2.ID1 < T2.ID2
WHERE T2.ID1 IS NULL

<强>输出

| ID1 | ID2 |
|-----|-----|
|   x |   y |
|   a |   b |

答案 1 :(得分:0)

我建议你像这样使用EXISTS

SELECT *
FROM yourTable t
WHERE NOT EXISTS(SELECT 1 FROM yourTable ti
                 WHERE t.ID1 = ti.ID2 AND t.ID2 = ti.ID1
                   AND ti.ID1 > ti.ID2)