Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tất cả các kết hợp vòng tròn có thể có trong SQL giữa hai bảng

Đây là hai giải pháp cho vấn đề

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

HOẶC (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 Kết nối theo mệnh đề tương đương trong SQL Server

  2. Cách lấy hàng cuối cùng của bảng Oracle

  3. Làm thế nào để lập trình tên bảng trong PL / SQL?

  4. Làm thế nào để giới hạn một bảng cơ sở dữ liệu để chỉ một hàng có thể có một giá trị cụ thể trong một cột?

  5. Chuỗi truy vấn Oracle bao gồm ký tự gạch nối