当数据中存在多对多关系时,如何在SQL中获取唯一对

当数据中存在多对多关系时,如何在SQL中获取唯一对,sql,sap-iq,sybase-asa,Sql,Sap Iq,Sybase Asa,我有以下数据。我需要做独特的配对 element1 element2 E1 C1 E1 C2 E2 C1 E2 C2 E3 C1 E3 C2 如何使用SQL获取以下对: E1,C1 E2,C2 Discard E3 我会这样做: select distinct a.element1, b.element2 fro

我有以下数据。我需要做独特的配对

element1        element2
E1              C1
E1              C2
E2              C1
E2              C2
E3              C1
E3              C2
如何使用SQL获取以下对:

E1,C1    E2,C2   Discard E3 

我会这样做:

select distinct a.element1, b.element2
from (
  select element1, dense_rank() over(order by element1) as rank
  from my_table
) a
join (
  select element2, dense_rank() over(order by element2) as rank
  from my_table
) b on a.rank = b.rank

我们是否将unique定义为数字部分匹配?Element1和Element2是同一个表中的列您需要递归CTE来解决此问题。我认为Sybase不支持它们。上面的代码不起作用。它只给我E1,C1,而不是E2,c2。很抱歉,我不能真正测试它。我有SAP ASE,但没有SAP ASA。如果单独运行内部查询,是否会得到排名:第一个为1、2、3,第二个为1、2?