Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich in SQL jede mögliche eindeutige Kombination von 5!56 generieren?

Wenn Sie mit "einzigartigen Sets" meinen, was Sie meiner Meinung nach tun (sorry, ich kenne APL nicht!), können Sie schreiben:

SELECT e1.number,   e2.number,   e3.number,   e4.number,   e.number
  FROM elements e1, elements e2, elements e3, elements e4, elements e5
 WHERE e1.number < e2.number
   AND e2.number < e3.number
   AND e3.number < e4.number
   AND e4.number < e5.number
;

Ja, es gibt einen Oracle-Trick, um Daten im Handumdrehen zu generieren, indem die hierarchische Abfrage und die CTE-Syntax verwendet werden:

WITH elements AS
( select rownum as number
  from dual
  connect by level <= 56 )
SELECT e1.number,   e2.number,   e3.number,   e4.number,   e.number
  FROM elements e1, elements e2, elements e3, elements e4, elements e5
 WHERE e1.number < e2.number
   AND e2.number < e3.number
   AND e3.number < e4.number
   AND e4.number < e5.number
;