Oracle
 sql >> база данни >  >> RDS >> Oracle

SQL Всички възможни Round Robin комбинации между две таблици

Ето две решения на проблема

SELECT  t1.Name + ',' +  t2.Name AS NamesCombination
FROM Person t1
INNER JOIN Person t2
ON t1.Name < t2.Name

ИЛИ (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 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle създава процедура, извикваща функция

  2. Имам вмъкване в израз, но има грешка със запетая и просто не мога да я поправя

  3. как работят съхранените процедури на Oracle (с курсори)?

  4. Йерархична заявка - Преброяване на записи, които принадлежат на родителски и дъщерни места

  5. Oracle:Изтриване отдолу нагоре