sql >> Databáze >  >> RDS >> Oracle

Seřaďte znaky ve varchar2 abecedně

Z odpovědi na adrese http://forums.oracle.com/forums/thread .jspa?messageID=1791550 to by mohlo fungovat, ale nemáte 10 g na testování...

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

V příkladu col je definován v SQL*Plus, ale pokud z toho uděláte funkci, můžete ji předat, nebo ji můžete přepracovat tak, aby přímo převzala sloupec tabulky.

Bral bych to spíše jako výchozí bod než jako řešení; původní otázka se týkala anagramů, takže je navržen tak, aby našel všechny permutace, takže by mohlo být možné něco podobného, ​​ale zjednodušeného. Domnívám se, že toto není pro velké hodnoty příliš vhodné.



  1. Úprava funkce PLSQL pro návrat více řádků ze stejného sloupce

  2. Android ListView pomocí SQLite

  3. export databáze Oracle (vytvoření souboru .sql dat)

  4. Jak mohu programově vytvořit DSN?