Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Classificar caracteres em varchar2 em ordem alfabética


De uma resposta em http://forums.oracle.com/forums/thread .jspa?messageID=1791550 isso pode funcionar, mas não tem 10g para testar ...
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')

No exemplo col é definido no SQL*Plus, mas se você fizer disso uma função, poderá passá-la ou retrabalhá-la para obter uma coluna da tabela diretamente, suponho.

Eu tomaria isso como um ponto de partida em vez de uma solução; a pergunta original era sobre anagramas, então ela foi projetada para encontrar todas as permutações, então algo semelhante, mas simplificado, pode ser possível. Eu suspeito que isso não escala muito bem para valores grandes.