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

Zeichen in varchar2 alphabetisch sortieren

Aus einer Antwort unter http://forums.oracle.com/forums/thread .jspa?messageID=1791550 das könnte funktionieren, aber ich habe keine 10g zum Testen...

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')

Im Beispiel col ist in SQL*Plus definiert, aber wenn Sie daraus eine Funktion machen, können Sie sie übergeben oder sie so überarbeiten, dass sie direkt eine Tabellenspalte übernimmt, nehme ich an.

Ich würde das eher als Ausgangspunkt denn als Lösung nehmen; Die ursprüngliche Frage bezog sich auf Anagramme, daher wurde sie entwickelt, um alle Permutationen zu finden, sodass etwas Ähnliches, aber Vereinfachtes möglich sein könnte. Ich vermute, dass dies für große Werte nicht sehr gut skaliert.