用户传入  任意 18个数字[不重复的] ,要我在后台运算出这18个中任何 6个数的组合,然后将各种组写入表中,请问这SQL 要怎么写? 谢谢!

解决方案 »

  1.   

    是组合,表结构很简单,就是 A,b,c,d,e,f 来存放6个数字即可
      

  2.   

    举个例子,5个数中取3个SQL> select c1 from f;        C1
    ----------
             5
             4
             1
             3
             2
    排列
    SQL> select a.c1,b.c1,c.c1 from f a,f b,f c where a.c1<>b.c1 and b.c1<>c.c1 and
    c.c1<>a.c1;        C1         C1         C1
    ---------- ---------- ----------
             1          4          5
             3          4          5
             2          4          5
             4          1          5
             3          1          5
             2          1          5
             4          3          5
             1          3          5
             2          3          5
             4          2          5
             1          2          5        C1         C1         C1
    ---------- ---------- ----------
             3          2          5
             1          5          4
             3          5          4
             2          5          4
             5          1          4
             3          1          4
             2          1          4
             5          3          4
             1          3          4
             2          3          4
             5          2          4        C1         C1         C1
    ---------- ---------- ----------
             1          2          4
             3          2          4
             4          5          1
             3          5          1
             2          5          1
             5          4          1
             3          4          1
             2          4          1
             5          3          1
             4          3          1
             2          3          1        C1         C1         C1
    ---------- ---------- ----------
             5          2          1
             4          2          1
             3          2          1
             4          5          3
             1          5          3
             2          5          3
             5          4          3
             1          4          3
             2          4          3
             5          1          3
             4          1          3        C1         C1         C1
    ---------- ---------- ----------
             2          1          3
             5          2          3
             4          2          3
             1          2          3
             4          5          2
             1          5          2
             3          5          2
             5          4          2
             1          4          2
             3          4          2
             5          1          2        C1         C1         C1
    ---------- ---------- ----------
             4          1          2
             3          1          2
             5          3          2
             4          3          2
             1          3          2已选择60行。组合
    SQL> select a.c1,b.c1,c.c1 from f a,f b,f c where a.c1>b.c1 and b.c1>c.c1;        C1         C1         C1
    ---------- ---------- ----------
             5          4          1
             5          3          1
             4          3          1
             5          2          1
             4          2          1
             3          2          1
             5          4          3
             5          4          2
             5          3          2
             4          3          2已选择10行。SQL>
      

  3.   

    谢谢大家!
    我按照 waterfirer(水清)  提供的,问题解决了!
      

  4.   

    waterfirer(水清) GOOD JOB.