t-sql中的特定组

时间:2018-03-02 21:27:44

标签: sql sql-server tsql group-by

是否有人知道如何在T-SQL中获得此示例中的结果:

id val1 val2
1.  a   b
1.  c   d
1.  b   a
1.  d   c
1.  e   f
2.  k   m
2.  m   p
2.  m   k 
id val1 val2
1.  a   b
1.  c   d
1.  e   f
2.  k   m
2.  m   p

a b和b仅在b中的组。 c d(d c)和k m(m k)

相同

2 个答案:

答案 0 :(得分:2)

~.text与自定义row_number一起使用。

partition by

答案 1 :(得分:0)

我会把它写成:

select id, val1, val2
from t
where val1 < val2
union all
select id, val1, val2
from t
where val1 > val2 and
      not exists (select 1 from t t2 where t2.id = t.id and t2.val1 = t.val2 and t2.val2 = t.val1);