如何排除具有重复列的行?

时间:2012-07-21 20:49:12

标签: sql sql-server sql-server-2008

说我有以下数据:

id1   id2    data
----------------------
7     8      test1
7     8      test2
8     7      test1
8     7      test2

对于我的需求,id1和id2可以转置,因此这实际上是重复数据。如何只为data选择id1 / id2的一个组合及其所有唯一值?所以期望的输出是:

7   8   test1
7   8   test2

8   7   test1
8   7   test2

哪个无关紧要。

2 个答案:

答案 0 :(得分:4)

如果真的所有记录都以这种方式重复并id1!=id2,这可行吗?

select distinct id1, id2, data from test where id1 < id2

答案 1 :(得分:0)

如果您没有重复记录,则可以执行以下操作:

select distinct (case when id1 < id2 then id1 else id2 end) as idlow,
       (case when id1 < id2 then id2 else id1 end) as idhigh,
       data
from table t