sql >> Databasteknik >  >> RDS >> Oracle

Hur kan jag skapa alla möjliga unika kombinationer av 5!56 i SQL?

Om du med "unika uppsättningar" menar vad jag tror att du gör (förlåt, jag vet inte APL!), kan du skriva:

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, det finns ett Oracle-trick för att generera data i farten, med hjälp av den hierarkiska frågan och CTE-syntaxen:

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
;


  1. Dra och släpp i MS Access och villkorlig sortering

  2. Hur matchar man inte null + inte tomt?

  3. Varför kan jag ansluta till MySQL via skal, men kan inte göra det via Python?

  4. Ansluta en 32-bitars applikation till jBASE