Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Sortuj znaki w varchar2 alfabetycznie

Z odpowiedzi na http://forums.oracle.com/forums/thread .jspa?messageID=1791550 to może zadziałać, ale nie musisz testować na 10g...

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

W przykładzie col jest zdefiniowany w SQL*Plus, ale jeśli uczynisz tę funkcję, możesz ją przekazać lub przerobić ją, aby bezpośrednio wziąć kolumnę tabeli.

Traktuję to raczej jako punkt wyjścia niż rozwiązanie; oryginalne pytanie dotyczyło anagramów, więc zostało zaprojektowane tak, aby znaleźć wszystkie permutacje, więc coś podobnego, ale uproszczonego może być możliwe. Podejrzewam, że nie skaluje się to zbyt dobrze dla dużych wartości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja TANH() w Oracle

  2. Oracle - usuń wszystkie rekordy podrzędne dla rodzica

  3. Niepoprawny miesiąc w Oracle, gdy używany jest add_months

  4. Oracle sql (brak lewego nawiasu)

  5. MERGE tabeli, nie rób nic po dopasowaniu