当前位置: 首页 > 面试题库 >

SQL两个表之间的所有可能的循环组合

伊铭
2023-03-14
问题内容

给定表:

create table Person( Name varchar(100) )

名称对于所有人而言都是唯一的

哪种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

问题答案:
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


 类似资料:
  • 我正在组装一个java小程序,使任务在工作中更快、更高效。 用户定义项目列表需要拆分成的三个组的大小。列表中的每个项目根据它被放入三个组中的哪个组具有不同的值。小程序需要显示哪个组合的总价值最高。 示例:带有列的二维整数数组;项目编号、第1组中的值、第2组中的值和第3组中的值。 这样,用户定义组1有3个插槽,组2有3个插槽,组3有2个插槽。 小程序应不按特定顺序显示以下解决方案 我可以管理一种效率

  • 我有亲戚 并想在PostgreSQL中加入它 所以我得到了所有可能的替换组合(即替换或多或少的笛卡尔积)。所以组1没有更新,组2只有B2,组3只有D2,组4都有B2和D2。 结尾应该是这样的,但应该对更多人开放(就像D1的额外D3) 编辑: 另一个可能的替换表可以是 可能会导致6组(我希望我没有忘记一个案例) 如果你有三个替代品,比如 这将导致8组。到目前为止,我所尝试的并没有真正的帮助: 我很高

  • 问题内容: 我想使用两个数组生成一个,一个包含国家/地区代码,另一个包含国家/地区名称。 这是一个例子: 这种方法对我不起作用。有什么建议么? 问题答案: 那是无效的。 您可能想要这样的东西… 另外,使代码成为数组的键会容易得多…

  • 问题内容: 我正在画一个国际象棋骑士的可能路径,一种情况是这样的: 现在,而不是1和2,我想构造一个循环来尝试组合: 但是我不知道如果没有必要怎么做。至少有一种聪明的方法吗? 问题答案: 您可以创建一个Vector类或类似的类(或使用任何类似Pair的类型),用您的值填充列表并对其进行迭代(无需过多考虑性能): 如果您确实想节省一些行(您是在打高尔夫球吗?),则可以使用循环创建实例,但这并不能真正