sql >> Base de Datos >  >> RDS >> Oracle

Ordenar caracteres en varchar2 alfabéticamente

De una respuesta en http://forums.oracle.com/forums/thread .jspa?messageID=1791550 esto podría funcionar, pero no tienes 10g para probar...

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

En el ejemplo col está definido en SQL*Plus, pero si convierte esto en una función, puede pasarlo o podría modificarlo para que tome una columna de tabla directamente, supongo.

Lo tomaría como un punto de partida en lugar de una solución; la pregunta original era sobre anagramas, por lo que está diseñado para encontrar todas las permutaciones, por lo que podría ser posible algo similar pero simplificado. Sospecho que esto no escala muy bien para valores grandes.