给定表:
create table Person( Name varchar(100) )
其中 Name 对于所有 Person 都是唯一的
什么 SQL 查询可以生成所有可能的 n!/((n-2)!2!) 循环组合?
假设 Person 的基数总是等于 4
示例人 = {'Anna','Jerome','Patrick','Michael')
输出:
Anna, Jerome
Anna, Patrick
Anna, Michael
Jerome, Patrick
Jerome, Michael
Patrick, Michael
任何帮助,将不胜感激。谢谢!
这是我的答案(我使用了 oracle SQL):
select P1.NAME PERSON1, P2.NAME PERSON2
from (select rownum RNUM, NAME
from PERSON) P1,
(select rownum RNUM, NAME
from PERSON) P2
where P1.RNUM < P2.RNUM