Oracle
 sql >> Base de données >  >> RDS >> Oracle

Trier les caractères dans varchar2 par ordre alphabétique

À partir d'une réponse sur http://forums.oracle.com/forums/thread .jspa?messageID=1791550 cela pourrait fonctionner, mais je n'ai pas 10g pour tester...

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

Dans l'exemple col est défini dans SQL*Plus, mais si vous en faites une fonction, vous pouvez la transmettre ou la retravailler pour prendre directement une colonne de table, je suppose.

Je prendrais cela comme un point de départ plutôt qu'une solution; la question initiale concernait les anagrammes, elle est donc conçue pour trouver toutes les permutations, donc quelque chose de similaire mais simplifié pourrait être possible. Je soupçonne que cela ne s'adapte pas très bien aux grandes valeurs.