Oracle
 sql >> Database >  >> RDS >> Oracle

Ordina i caratteri in varchar2 in ordine alfabetico

Da una risposta su http://forums.oracle.com/forums/thread .jspa?messageID=1791550 questo potrebbe funzionare, ma non hai 10 g su cui testare...

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

Nell'esempio col è definito in SQL*Plus, ma se la rendi una funzione puoi passarla o rielaborarla per prendere direttamente una colonna di tabella suppongo.

Lo prenderei come punto di partenza piuttosto che come soluzione; la domanda originale riguardava gli anagrammi, quindi è progettato per trovare tutte le permutazioni, quindi potrebbe essere possibile qualcosa di simile ma semplificato. Sospetto che questo non si adatti molto bene per valori elevati.