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

varchar2の文字をアルファベット順に並べ替えます

    http://forums.oracle.com/forums/threadの回答から.jspa?messageID =1791550 これは機能するかもしれませんが、テストする10gがありません...

    SELECT MIN(permutations)
    FROM (SELECT REPLACE (SYS_CONNECT_BY_PATH (n, ','), ',') permutations
        FROM (SELECT LEVEL l, SUBSTR ('&col', LEVEL, 1) n
            FROM DUAL
            CONNECT BY LEVEL <= LENGTH ('&col')) yourtable
        CONNECT BY NOCYCLE l != PRIOR l)
    WHERE LENGTH (permutations) = LENGTH ('&col')
    

    例ではcol はSQL*Plusで定義されていますが、これを関数にすると、渡すことができます。または、テーブルの列を直接取得するように作り直すこともできます。

    私はそれを解決策ではなく出発点としてとらえます。元の質問はアナグラムに関するものだったので、すべての順列を見つけるように設計されているので、似ているが単純化されたものが可能かもしれません。これは大きな値ではうまくスケーリングできないと思います。



    1. AVG行の長さが予想の4倍になるのはなぜですか?

    2. リスナーに動的に登録する必要があるすべてのインスタンスを表示

    3. MySQLパフォーマンスの最適化:日時フィールドによる順序

    4. クエリフィールドの最後の文字でグループを選択