sql >> Databasteknik >  >> RDS >> Oracle

Sortera chars i varchar2 alfabetiskt

Från ett svar på http://forums.oracle.com/forums/thread .jspa?messageID=1791550 det här kanske fungerar, men har inte 10g att testa på...

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

I exemplet col är definierad i SQL*Plus, men om du gör detta till en funktion kan du skicka in den, eller omarbeta den för att ta en tabellkolumn direkt antar jag.

Jag skulle ta det som en utgångspunkt snarare än en lösning; den ursprungliga frågan handlade om anagram så den är utformad för att hitta alla permutationer, så något liknande men förenklat kan vara möjligt. Jag misstänker att detta inte skalas särskilt bra för stora värden.



  1. standardmetod för att få meddelande från databasen om ändring/infogning

  2. Skapa ett stort heltal från den stora änden av en uuid i PostgreSQL

  3. org.postgresql.util.PSQLEUndantag:FATAL:ledsen, för många klienter redan

  4. SQL flera rader i en