SQL All Possible Round Robin Комбинации между двумя таблицами

таблица:

create table Person( Name varchar(100) ) 

где Имя уникально для всех лиц

Какой SQL-запрос может генерировать все возможные комбинации n! / ((N-2)! 2!) Round robin?

Предполагается, что мощность Человека ВСЕГДА равна 4

Пример Person = {'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 t1.Name + ',' + t2.Name AS NamesCombination FROM Person t1 INNER JOIN Person t2 ON t1.Name < t2.Name 

OR (Oracle 11i R2 +)

 WITH NamesCombination AS ( SELECT 1 AS Cntr ,Name , CAST(Name AS VARCHAR(MAX))AS NamesCombinations FROM Person UNION ALL SELECT nc.Cntr+1 ,p.Name ,nc.NamesCombinations + ',' + CAST(p.Name AS VARCHAR(MAX)) FROM Person AS p JOIN NamesCombination nc ON p.Name < nc.Name WHERE nc.Cntr < 2 ) SELECT NamesCombinations FROM NamesCombination WHERE Cntr = 2 

введите описание изображения здесь

 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 

Обратите внимание, что это синтаксис TSQL (Sql Server). Я знаю, что Oracle поддерживает функции окон, особенно row_number (), необходимые для этого решения.

Не должно быть слишком сложно заставить это работать в Oracle с некоторыми проб и ошибок

 select p1.name, p2.name from ( select name, row_number() over(order by name) as rownumber from person ) p1 inner join ( select name, row_number() over(order by name) as rownumber from person ) p2 on p1.name <> p2.name and p1.rownumber > p2.rownumber order by 1 

row_number присваивает номер строки каждой строке. Затем вам необходимо присоединиться, как было предложено ранее, с дополнительным предложением cl1.jpg <p2.rownumber> p2.rownumber