sql >> データベース >  >> RDS >> Oracle

SQLで、5!56の可能なすべての一意の組み合わせを生成するにはどうすればよいですか?

    「ユニークなセット」とは、私があなたがしていると思うことを意味する場合(申し訳ありませんが、APLはわかりません!)、次のように書くことができます。

    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
    ;
    

    はい、階層クエリとCTE構文を使用してオンザフライでデータを生成するOracleのトリックがあります:

    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. 宿題-2つの都市間の複数のフライトストップを計算しようとしていますか?

    2. MySQLで文字列から時間を取得する方法

    3. WindowsにOracleDatabaseをインストールする方法

    4. SQL Azureデータベースをローカル開発サーバーにコピーするにはどうすればよいですか?